关于准确率

来源:4-6 网格搜索与k近邻算法中更多超参数

ALGO_cui

2017-12-28

grid_search.fit后 grid_search.best_score_ 为0.98538622129436326, 

为什么knn_clf = grid_search.best_estimator_ ,且knn_clf.predict(X_test) knn_clf.score(X_test, y_test) 后的准确率却变成0.98333333333333328。二者为什么会不同呢?

谢谢老师!

写回答

1回答

liuyubobobo

2017-12-28

我在课程中提到过,因为grid_search使用的那个score和你调用得到best_estimator_,再去预测X_test得到的score,这两个score计算方式不同。仔细想一想,我们都没有将X_test和y_test给grid_search,grid_search得到的这个score是和X_test, y_test没关系的,肯定和预测X_test得到的score不同:)


至于grid_search的这个score是怎么计算出来的?我们在这个课程的第八章,交叉验证中就会讲到。我们使用的这个类GridSearchCV中的CV,就是交叉验证(Cross Validation)的意思,到那时,相信你就能完全理解grid_search这个score是怎么计算的了:)而且,这个score值,比使用一组X_test做预测得到的结果,要更可信:)


在这一小节,主要理解:我们可以使用网格搜索的方式,寻找我们训练模型的最佳超参数,就可以了:)


继续加油!


3
12
神经旷野舞者
回复
liuyubobobo
要快快学到第8章,现在效率比较低了,不知道是不是做其他杂事拖了,这月还要把老师的算法看了找工作
2018-02-04
共12条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程