0% found this document useful (0 votes)
2 views6 pages

Machine Learning Model Training and Prediction

The document outlines a process for importing a ZIP file containing a CSV, training various machine learning models on employee promotion data, and evaluating their performance metrics. It includes steps for making predictions using new data and visualizing the results through bar plots. The models used include Decision Trees, KNN, Logistic Regression, and XGBoost, among others.

Uploaded by

Nanang Arifin
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

Machine Learning Model Training and Prediction

The document outlines a process for importing a ZIP file containing a CSV, training various machine learning models on employee promotion data, and evaluating their performance metrics. It includes steps for making predictions using new data and visualizing the results through bar plots. The models used include Decision Trees, KNN, Logistic Regression, and XGBoost, among others.

Uploaded by

Nanang Arifin
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Import files zip

import zipfile

import pandas as pd

import os

nama_file_zip = 'C:/Users/Acer/Downloads/archive (59).zip'

nama_file_csv = 'employee_promotion.csv'

path_to_downloads = 'C:/Users/Acer/Downloads'

with [Link](nama_file_zip, 'r') as z:

nama_file_csv = [Link]()[0]

[Link](nama_file_csv, path='temp_folder')

file_path = [Link]('temp_folder', nama_file_csv)

df = pd.read_csv(file_path)

[Link]()

Melatih model machine learning


models = {

'Decision Tree': DecisionTreeClassifier(),

'KNN': KNeighborsClassifier(),

'Logistic Regression': LogisticRegression(),

'GaussianNB': GaussianNB(),

'SVC': SVC(),

'Linear SVC': LinearSVC(),

'Random Forest': RandomForestClassifier(),

'Gradient Boosting': GradientBoostingClassifier(),

'Extra Trees': ExtraTreesClassifier(),

'XGBoost': XGBClassifier()

metrik = [Link](columns=['Model Name', 'Accuracy', 'Precision', 'Recall', 'F1 Score'])


for model_name, model in [Link]():

[Link](X_train, y_train)

y_pred = [Link](X_test)

akurasi = accuracy_score(y_test, y_pred)

presisi = precision_score(y_test, y_pred)

recall = recall_score(y_test, y_pred)

f1 = f1_score(y_test, y_pred)

metrik = [Link]({'Model Name': model_name,

'Accuracy': akurasi,

'Precision': presisi,

'Recall': recall,

'F1 Score': f1}, ignore_index=True)

Metrik

Melatih model machine learning


all_model = [DecisionTreeClassifier,

LogisticRegression,

KNeighborsClassifier,

GaussianNB,

SVC,

LinearSVC,

RandomForestClassifier,

GradientBoostingClassifier,

ExtraTreesClassifier,

XGBClassifier]

model_name = ['DecisionTreeClassifier',

'LogisticRegression',

'KNeighborsClassifier',
'GaussianNB',

'SVC',

'LinearSVC',

'RandomForestClassifier',

'GradientBoostingClassifier',

'ExtraTreesClassifier',

'XGBClassifier']

hasil_train = []

hasil_test = []

for model_type in all_model:

model = model_type()

[Link](X_train,y_train)

hasil_train.append([Link](X_train , y_train))

hasil_test.append([Link](X_test , y_test))

data_hasil = [Link]()

data_hasil['model'] = model_name

data_hasil['Accuracy training'] = hasil_train

data_hasil['Accuracy test'] = hasil_test

data_hasil['gap'] = abs(data_hasil['Accuracy training'] - data_hasil['Accuracy test'])

data_hasil.sort_values(by='Accuracy test',ascending=False)

Membuat prediksi menggunakan data baru


X_new = [Link]({

'department':[2],

'region':[1],

'education':[2],

'gender':[1],

'recruitment_channel':[1],

'no_of_trainings':[3],
'age':[23],

'previous_year_rating':[9],

'length_of_service':[2],

'awards_won':[6],

'avg_training_score': [78]

})

prediksi = [Link](index=range(len(X_new)))

for model_name, model in [Link]():

predictions = [Link](X_new)

prediksi[model_name] = predictions

prediksi

Membuat prediksi menggunakan data baru


prediksi_decision_tree = {}

prediksi_xgboost = {}

for model_name, model in [Link]():

if model_name == 'Decision Tree':

predictions = [Link](X_new)

prediksi_decision_tree[model_name] = predictions

elif model_name == 'XGBoost':

predictions = [Link](X_new)

prediksi_xgboost[model_name] = predictions

prediksi_decision_tree_df = [Link](prediksi_decision_tree)

prediksi_xgboost_df = [Link](prediksi_xgboost)
Membuat prediksi menggunakan data baru

models = [('Decision Tree', dtree), ('XGboost', xgboost_model), ('Light GBM', light_gbm)]

hasil = [Link]()

for model_name, model in models:

y_pred = [Link](X_new)

hasil[model_name] = y_pred

hasil

Membuat visualisasi data median berdasarkan kaetgori:

median_rating = [Link]('promoted')['previous_year_rating'].median().reset_index()

median_service = [Link]('promoted')['length_of_service'].median().reset_index()

median_training = [Link]('promoted')['no_of_trainings'].median().reset_index()

median_age = [Link]('promoted')['age'].median().reset_index()

median_combined = median_rating.set_index('promoted').join(

[median_service.set_index('promoted'), median_training.set_index('promoted'),
median_age.set_index('promoted')]

median_melted = median_combined.reset_index().melt(id_vars='promoted', var_name='variable',


value_name='median_value')

g = [Link](median_melted, col='variable', sharey=False)

[Link]([Link], 'promoted', 'median_value', palette='Set2')

g.set_axis_labels('Promoted', 'Median Value')

g.set_titles('{col_name}')

plt.tight_layout()
[Link]()

Membuat visualisasi data berdasarkan data kategori:

data_numerik = df.select_dtypes(include='number')

kolom_numerik = data_numerik.[Link]()

num_cols = len(kolom_numerik)

num_rows = (num_cols + 2) // 2

fig, axs = [Link](ncols=2, nrows=num_rows, figsize=(8, 3 * num_rows))

axs = [Link]()

median_promoted = [Link]('promoted')[kolom_numerik].median()

for i, var in enumerate(kolom_numerik):

[Link](data=median_promoted.reset_index(), x='promoted', y=var, ax=axs[i], palette='Set2')

axs[i].set_title(var)

if num_cols < len(axs):

for i in range(num_cols, len(axs)):

[Link](axs[i])

fig.tight_layout()

[Link]()

You might also like