【发布时间】:2019-09-07 23:40:58
【问题描述】:
我想使用 Scikit Learn 的一种技术,即 ShuffleSplit,用一系列随机测试和训练集对我的线性回归模型进行基准测试。这在 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
【问题讨论】:
标签: python scikit-learn regression