-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunctions.py
More file actions
60 lines (50 loc) · 2.3 KB
/
functions.py
File metadata and controls
60 lines (50 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from sklearn import metrics
from sklearn.linear_model import LinearRegression, Ridge, Lasso, QuantileRegressor
def get_stats(y_test, y_pred):
model_stats = []
model_stats.append(metrics.r2_score(y_test, y_pred))
model_stats.append(metrics.mean_absolute_percentage_error(y_test, y_pred))
model_stats.append(metrics.mean_absolute_error(y_test, y_pred))
model_stats.append(metrics.mean_squared_error(y_test, y_pred, squared=False))
model_stats.append(metrics.mean_squared_error(y_test, y_pred, squared=True))
return model_stats
def show_stats(model_accuracy, title):
count = 0
print(title)
for i in model_accuracy:
print("Fold ", count,
"R²: %.4f" %i[0],
"\t| MAPE: %.2f" %(i[1]*100), "%",
"\t| MAE: %.2f" %i[2],
"\t| MSE: %.2f" %i[3],
"\t| RMSE: %.2f" %i[4])
count += 1
def get_folder_media(model_stats):
media = 0
for i in model_stats:
media += i[1] / len(model_stats)
return media
def get_media(model_medias):
media = 0
for i in model_medias:
media += i / len(model_medias)
return media
def start_models(X_dummies, y, kfold, n):
Linear_accuracy, Ridge_accuracy, Lasso_accuracy, Quantile_accuracy = [], [], [], []
for train_index, test_index in kfold.split(X_dummies):
#print("TRAIN:", train_index, "\nTEST:", test_index)
X_train, X_test = X_dummies.iloc[train_index], X_dummies.iloc[test_index]
y_train, y_test = y[train_index], y[test_index]
linearR = LinearRegression().fit(X_train, y_train)
ridgeR = Ridge(alpha=1.0, max_iter=10000).fit(X_train, y_train)
lassoR = Lasso(alpha=1.0, max_iter=10000).fit(X_train, y_train)
quantileR = QuantileRegressor().fit(X_train, y_train)
linear_pred = linearR.predict(X_test)
ridge_pred = ridgeR.predict(X_test)
lasso_pred = lassoR.predict(X_test)
quantile_pred = quantileR.predict(X_test)
Linear_accuracy.append(get_stats(y_test, linear_pred))
Ridge_accuracy.append(get_stats(y_test, ridge_pred))
Lasso_accuracy.append(get_stats(y_test, lasso_pred))
Quantile_accuracy.append(get_stats(y_test, quantile_pred))
return Linear_accuracy, Ridge_accuracy, Lasso_accuracy, Quantile_accuracy