Как определить, подходит ли модель ML к набору данных или нет? - PullRequest
0 голосов
/ 25 апреля 2019

Я сравнивал различные регрессионные модели от sklearn. При этом меня смутило значение оценки модели, которое я получил.Ниже в коде вы можете видеть, что я использовал как линейную регрессию, так и регрессию хребта, но разница в значениях баллов для набора тренировочных и тестовых данных сильно варьируется.

using Linear Regression

from sklearn.linear_model import LinearRegression as lr
model = lr()
model.fit(X_train, y_train)
model.predict(X_test)
print("LINEAR REGRESSION")
print("Training Score", end = "\t")
print(model.score(X_train, y_train))
print("Test Score", end = "\t")
print(model.score(X_test, y_test))

------------------------------------------------------------
O/P
LINEAR REGRESSION
Training Score  0.7147120015665793
Test Score  0.4242120003778227


Using Ridge Regression

from sklearn.linear_model import Ridge as r
model = r(alpha = 20).fit(X_train, y_train)
model.predict(X_test)
print("RIDGE REGRESSION")
print("Training Score", end = "\t")
print(model.score(X_train, y_train))
print("Test Score", end = "\t")
print(model.score(X_test, y_test))

-----------------------------------------------------------
O/P
RIDGE REGRESSION
Training Score  0.4991610348613835
Test Score  0.32642156452579363

Мой вопрос:меньшая разница между оценочными значениями обучающего и тестового набора данных означает, что моя модель является Обобщенной и подходит в равной степени как для теста, так и для данных Поезда (не переоснащение), или это означает что-то еще.Если это означает что-то еще, пожалуйста, объясните.

И как значение "альфа" влияет на модель регрессии гребня?Я новичок, поэтому, пожалуйста, объясните все как можно проще.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Продолжая ответ Макса, переоснащение является ошибкой моделирования, когда обученная модель слишком хорошо моделирует обученные данные.Теперь это обычно происходит, когда модель достаточно сложна (высокий размер VC), чтобы узнать очень сложные детали и слышать, что это негативно повлияет на конечную производительность. VC Dimension Лекция Caltech о переоснащении VC Простой способ наблюдать за перенастройкой - посмотреть на разницу между результатами тренировок и тестами.

Возвращаясь к вашему примеру, разница в оценках между тестовыми и тренировочными данными для линейной регрессии составляет 0,290.При этом разница по регрессии гребня составляет 0,179.Только из одного этого эксперимента трудно судить о том, подходит ли модель для переоснащения, поскольку обычно на практике всегда будут существовать некоторые различия.Но здесь мы можем сказать, что регрессия гребня имеет тенденцию к меньшему соответствию для этого набора данных.

Теперь, принимая решение о том, какую модель выбрать, мы должны учитывать и другие факторы, помимо переоснащения.В этом случае линейная регрессия имеет тенденцию работать на 10% выше в тестовом наборе данных по сравнению с регрессионной регрессией, поэтому вы должны принять это во внимание.Возможно, дальнейшие эксперименты с использованием различных методов проверки и точной настройки различных гиперпараметров должны стать следующими шагами.

0 голосов
/ 25 апреля 2019

Может быть, вы можете добавить отдельный набор проверки для вас model.fit или установить параметр validation_split как в keras документах метода подгонки , я не знаю, есть ли что-то подобноечто в sklearn kit.

Но в целом оценки для набора проверки или test-st и тренировочного набора должны быть почти равными, в противном случае модель имеет тенденцию к переоснащению.

Также естькуча метрик, которые вы можете использовать для оценки вашей модели.Я бы порекомендовал книгу Oreilly Deep Learning Page 39 .Есть действительно хорошее объяснение.

Или посмотрите здесь и здесь .

Или посмотрите здесь, глава 5.2 .

Не стесняйтесь задавать другие вопросы.

...