Я новичок в машинном обучении, и недавно я столкнулся с проблемой, в которой я не уверен.Когда я запускаю код (как показано на рисунке) в блокноте Jupyter, он каждый раз дает мне разные оценки, и я не уверен, почему?
Я подумал, установив random_state или seed для KFold, что он будет давать мне один и тот же счет каждый раз для моих cross_val_score
?
results = []
names = []
seed=12
for name, model in models:
kfold = KFold(n_splits=num_folds, random_state=seed)
cv_results = cross_val_score(model, X_train, y_train.ravel(), cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = '{}: score: {:.2f}, std_dev:{:.2f}'.format(name,
cv_results.mean(), cv_results.std())
print(msg)
Некоторые примеры выходных данных:
LR: score: -24.69, std_dev: 19.74
LASSO: score: -29.82, std_dev: 20.94
EN: score: -28.59, std_dev: 19.79
KNN: score: -38.66, std_dev: 28.77
CART: score: -16.42, std_dev: 15.39
SVR: score: -60.53, std_dev: 44.24
Для второго запуска с тем же кодом (также с тем же начальным числом):
LR: score: -24.69, std_dev: 19.74
LASSO: score: -29.82, std_dev: 20.94
EN: score: -28.59, std_dev: 19.79
KNN: score: -38.66, std_dev: 28.77
CART: score: -18.65, std_dev: 17.91
SVR: score: -60.53, std_dev: 44.24