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]()