Я хотел бы использовать метод 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