Bat*_*dak 5 python regression r machine-learning scikit-learn
我有一个158行10列的数据集.我尝试建立多元线性回归模型,并尝试预测未来的价值.
我使用GridSearchCV来调整参数.
这是我的GridSearchCV和回归函数:
def GridSearch(data):
X_train, X_test, y_train, y_test = cross_validation.train_test_split(data, ground_truth_data, test_size=0.3, random_state = 0)
parameters = {'fit_intercept':[True,False], 'normalize':[True,False], 'copy_X':[True, False]}
model = linear_model.LinearRegression()
grid = GridSearchCV(model,parameters)
grid.fit(X_train, y_train)
predictions = grid.predict(X_test)
print "Grid best score: ", grid.best_score_
print "Grid score function: ", grid.score(X_test,y_test)
Run Code Online (Sandbox Code Playgroud)
此代码的输出是:
网格最佳得分:0.720298870251
网格评分函数:0.888263112299
我的问题是best_score_和score功能有什么区别?
score功能如何比best_score功能更好?
提前致谢.
Bre*_*arn 14
这best_score_是交叉验证的最佳分数.也就是说,模型适合于部分训练数据,并且通过预测训练数据的其余部分来计算得分.这是因为你传递X_train和y_train到fit; fit因此,该过程对您的测试集没有任何了解,只知道您的训练集.
score模型对象的方法根据您给出的数据对模型进行评分.你通过X_test和y_test,所以这个调用计算合适的分数上(即调整)模型测试集.
简而言之,这两个分数是根据不同的数据集计算出来的,因此它们不同也就不足为奇了.
| 归档时间: |
|
| 查看次数: |
5216 次 |
| 最近记录: |