Оценка в множественной линейной регрессии с помощью Cross_Val_ScorePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Оценка в множественной линейной регрессии с помощью Cross_Val_Score

Сообщение Anonymous »

Я получаю критерии оценки из cross_val_score, которые не похожи на значения по умолчанию или введенные (scoring='r2') значения r2. Значение выглядит как среднеквадратичное значение или отрицательная средняя ошибка.
Я просмотрел значения прогноза для наборов тестовых данных разного размера из простого разделения теста поезда, и хотя возвращаемая метрика r2 в некоторых случаях выглядит низкой ( от 0,14 до 0,97) прогнозируемый возраст является разумным, учитывая стратификацию исходного набора данных (прогнозируемый возраст 15 лет по сравнению с реальным возрастом 10 лет не так уж и страшен для нужд использования этой модели).
Вот исходный код сборки модели:

Код: Выделить всё

#Using training and testing splits to check for model accuracy and overfitting
from sklearn.model_selection import cross_val_score, train_test_split
X_train, X_test, y_train, y_test = train_test_split(dftotal_ni, dfy_ni, test_size=0.12, random_state=42)
score = lm_ni.score(X_test, y_test)
print(score)
0.5729935257330477
#это не так уж и плохо для необходимых целей

Код: Выделить всё

Yhat_test = lm_ni.predict(X_test)
#Plot the relationaship between the Actual and Predicted Ages
plt.scatter(Yhat_test, y_test)
plt.xlabel("Actual Age (years)")
plt.ylabel("Predicted Age")
plt.show()
Прогнозируемый и фактический возраст

Код: Выделить всё

from sklearn import datasets
from sklearn.metrics import r2_score as r2
from sklearn.metrics import root_mean_squared_error as rms
from sklearn.model_selection import KFold
from numpy import mean, std
from sklearn.preprocessing import MinMaxScaler

# Create new model for KFolds
lm_ni_val = LinearRegression()
scoring = 'r2'

# Evaluate the model of KFolds
scores = cross_val_score(
lm_ni_val, dftotal_ni, dfy_ni, scoring=scoring, cv=8, n_jobs=-1)

# Mean and standard deviation of accuracy
print('Accuracy: %.3f ,\nStandard Deviations :%.3f' %
(mean(scores), std(scores)))
Точность: -5076,400,
Стандартные отклонения: 12227,956
#эти значения не имеют смысла в качестве r2, учитывая несколько итераций разделения теста поезда Я рассмотрел использование y_test и спрогнозировал y для различных разбивок индекса

Подробнее здесь: https://stackoverflow.com/questions/790 ... -val-score
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»