Scikit learn scikit了解装配上或装配下的交叉验证
我正在使用scikit learn cross_validation()获得例如0.82的平均分数(r2_scorer)。Scikit learn scikit了解装配上或装配下的交叉验证,scikit-learn,Scikit Learn,我正在使用scikit learn cross_validation()获得例如0.82的平均分数(r2_scorer)。 使用scikit学习功能,我如何知道我的拟合过度还是拟合不足?在测试训练和测试数据时,您应该比较您的分数。如果分数接近相等,你很可能不合身。如果它们相距很远,则可能是过度拟合(除非使用随机森林等方法) 要计算训练和测试数据的分数,可以使用以下内容(假设数据在变量X和Y中): 在测试培训和测试数据时,您应该比较您的分数。如果分数接近相等,你很可能不合身。如果它们相距很远,则可
使用scikit学习功能,我如何知道我的拟合过度还是拟合不足?在测试训练和测试数据时,您应该比较您的分数。如果分数接近相等,你很可能不合身。如果它们相距很远,则可能是过度拟合(除非使用随机森林等方法) 要计算训练和测试数据的分数,可以使用以下内容(假设数据在变量X和Y中):
在测试培训和测试数据时,您应该比较您的分数。如果分数接近相等,你很可能不合身。如果它们相距很远,则可能是过度拟合(除非使用随机森林等方法) 要计算训练和测试数据的分数,可以使用以下内容(假设数据在变量X和Y中):
不幸的是,我确认没有内置工具来比较CV设置中的训练和测试分数。
cross\u val\u score
工具仅报告测试分数
您可以使用安藤答案中的train\u test\u split
功能设置自己的循环,但也可以使用任何其他CV方案
import numpy as np
from sklearn.cross_validation import KFold
from sklearn.metrics import SCORERS
scorer = SCORERS['r2']
cv = KFold(5)
train_scores, test_scores = [], []
for train, test in cv:
regressor.fit(X[train], y[train])
train_scores.append(scorer(regressor, X[train], y[train]))
test_scores.append(scorer(regressor, X[test], y[test]))
mean_train_score = np.mean(train_scores)
mean_test_score = np.mean(test_scores)
如果您通过交叉验证计算平均训练和测试分数,您可以发现您是否:
- 不合身:列车分数远未达到满分(r2为1.0)
- 过度拟合:列车和测试分数彼此不接近(平均测试分数明显低于列车平均分数)
注意:如果您的模型不充分且数据太嘈杂,您可能同时存在严重的拟合不足和拟合过度。不幸的是,我确认没有内置工具来比较CV设置中的训练和测试分数。
cross\u val\u score
工具仅报告测试分数
您可以使用安藤答案中的train\u test\u split
功能设置自己的循环,但也可以使用任何其他CV方案
import numpy as np
from sklearn.cross_validation import KFold
from sklearn.metrics import SCORERS
scorer = SCORERS['r2']
cv = KFold(5)
train_scores, test_scores = [], []
for train, test in cv:
regressor.fit(X[train], y[train])
train_scores.append(scorer(regressor, X[train], y[train]))
test_scores.append(scorer(regressor, X[test], y[test]))
mean_train_score = np.mean(train_scores)
mean_test_score = np.mean(test_scores)
如果您通过交叉验证计算平均训练和测试分数,您可以发现您是否:
- 不合身:列车分数远未达到满分(r2为1.0)
- 过度拟合:列车和测试分数彼此不接近(平均测试分数明显低于列车平均分数)
注意:如果您的模型不足且数据过于嘈杂,则可能同时存在严重的拟合不足和拟合过度现象。感谢您的澄清感谢您的澄清