Amazing-Python-Scripts

Форк
0
57 строк · 1.6 Кб
1
# import libraries
2
import pickle
3
from sklearn.metrics import mean_absolute_error
4
from sklearn.model_selection import GridSearchCV
5
from sklearn.model_selection import cross_val_score
6
from sklearn.ensemble import RandomForestRegressor
7
from sklearn.model_selection import train_test_split
8
import pandas as pd
9
import numpy as np
10

11
# Load dataset
12
df = pd.read_csv('./Salary Predictor/dataset/cleaned_dataset.csv')
13

14
df_model = df[['avg_salary', 'Sector', 'python_yn',
15
               'job_sim', 'R_yn', 'tableau', 'power bi', 'ml', 'dl']]
16

17
# Categorical encoding
18
df_dum = pd.get_dummies(df_model)
19

20
# division into training and test set
21
X = df_dum.drop('avg_salary', axis=1)
22
y = df_dum.avg_salary.values
23
X_train, X_test, y_train, y_test = train_test_split(
24
    X, y, test_size=0.2, random_state=42)
25

26
# Model Generation
27
regressor = RandomForestRegressor()
28

29

30
np.mean(cross_val_score(regressor, X_train, y_train,
31
        scoring='neg_mean_absolute_error', cv=5))
32

33
# Hyperparameter tuning
34
parameters = {
35
    "n_estimators": range(10, 400, 10),
36
    "criterion": ['mse', 'mae'],
37
    "max_features": ['auto', 'sqrt', 'log2']
38
}
39

40
gs = GridSearchCV(regressor, param_grid=parameters,
41
                  scoring='neg_mean_absolute_error', cv=5)
42
gs.fit(X_train, y_train)
43

44
gs.best_score_
45
y_pred = gs.best_estimator_.predict(X_test)
46

47
# Accuracy measurement
48
mean_absolute_error(y_test, y_pred)
49

50
# Save the model
51
filename = './Salary Predictor/models/random_forest2_model.sav'
52
pickle.dump(gs.best_estimator_, open(filename, 'wb'))
53

54
# saving the columns
55
model_columns = list(X.columns)
56
with open('./Salary Predictor/models/model_columns1.pkl', 'wb') as file:
57
    pickle.dump(model_columns, file)
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.