【发布时间】:2014-05-27 01:00:24
【问题描述】:
我正在做一个简单的线性模型。我有
fire = load_data()
regr = linear_model.LinearRegression()
scores = cross_validation.cross_val_score(regr, fire.data, fire.target, cv=10, scoring='r2')
print scores
产生
[ 0.00000000e+00 0.00000000e+00 -8.27299054e+02 -5.80431382e+00
-1.04444147e-01 -1.19367785e+00 -1.24843536e+00 -3.39950443e-01
1.95018287e-02 -9.73940970e-02]
这怎么可能?当我对内置的糖尿病数据做同样的事情时,它工作得非常好,但是对于我的数据,它返回了这些看似荒谬的结果。我做错了什么吗?
【问题讨论】:
-
要让
LinearRegression发生这种情况,您的模型必须非常糟糕,以至于每次都预测一个简单的平均值会更好。通常这意味着您的模型过度拟合。有关详细信息,请参阅下面的答案,或尝试将cv设置为较小的数字。
标签: python statistics scikit-learn