Использование statsmodels OLS на тестовом наборе - PullRequest
0 голосов
/ 17 апреля 2019

Я хотел бы использовать метод Scikit Learn, а именно ShuffleSplit, для сравнения моей модели линейной регрессии с последовательностью рандомизированных наборов тестов и поездов.Это хорошо известно и прекрасно работает для LinearModel в Scikit Learn, используя:

from sklearn.linear_model import LinearRegression
LM = LinearRegression()
train_score = LM.score(X[train_index], Y[train_index])
test_score = LM.score(X[test_index], Y[test_index])

Здесь вы получите только значения R² и ничего более.Использование реализации statsmodel OLS для линейных моделей дает очень богатый набор баллов, среди которых настраиваются R² и AIC, BIC и т. Д. Однако здесь можно только согласовать модель с данными обучения, чтобы получить эти баллы.Есть ли способ получить их также для тестового набора?

, поэтому в моем примере:

from sklearn.model_selection import ShuffleSplit
from statsmodels.regression.linear_model import OLS

ss = ShuffleSplit(n_splits=40, train_size=0.15, random_state=42)
for train_index, test_index in ss.split(X):
    regr = OLS( Y.[train_index], X.[train_index]).fit()
    train_score_AIC = regr.aic

есть ли способ добавить что-то вроде

    test_score_AIC = regr.test(Y.[test_index], X.[test_index]).aic

1 Ответ

1 голос
/ 17 апреля 2019

Большинство из этих показателей являются показателями соответствия, которые встроены в классы модели / результатов и доступны только для обучающих данных или оценочной выборки. Многие из этих показателей недостаточно хорошо определены для выборочной оценки, оценки прогностической точности, или я никогда не видел определений, подходящих для этого случая.

В частности, loglike является методом модели и может оцениваться только на прилагаемом обучающем образце.

связанные вопросы:

https://github.com/statsmodels/statsmodels/issues/2572 https://github.com/statsmodels/statsmodels/issues/1282

Можно было бы частично обойти текущие ограничения статмоделей, но ни одна из них в настоящее время не поддерживается и не тестируется модулем.

...