采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,你好,gridsearch中还没predict() 就能通过gridsearch.best_score_ 知道准确度,都没看到哪步传了新的样本,没传新样本怎么计算距离,怎么知道准确度呢?
非常好的问题。
grid_search做的事情是,针对同一组训练数据,使用同一个算法,针对不同的超参数组合,看哪组超参数组合的效果更好。这里为了评判哪组超参数组合的效果更好,对于每一组超参数组合,针对训练数据集,就会得到一个分数。grid_search.best_score_ 就是指这个分数。
具体获得这个分数的方法,我们在这里还没有讲,叫做“交叉验证”,相应的英文是Cross Validation,也就是我们的grid_search对象所对应的类:GridSearchCV中,CV的意思。
在这个课程的第八章,我们将仔细学习什么是交叉验证。届时,回头看这个问题,你应该就能理解grid_search内部究竟运行了怎样的逻辑,这个grid_search.best_score_ 是怎样计算出来的了。在这里,我们先知道,grid_search通过一种算法(交叉验证),帮助我们找到了对于不同的超参数组合,最优的那个超参数组合,就好了:)
额、原来是交叉验证内部的逻辑,我学完回头再看看,谢谢老师!
grid_search 是使用的训练数据来拟合,然后找出精确度最高的那个分类器,grid_search.fit(X_train,y_train)这里使用了训练样本,从这个样本出发,创建出60个分类器,从其中选出精确度最高的那个,然后在用最好的那个去预测测试数据。
对于KNN这个算法来讲,由于是通过计算x_train 与 x 之间的距离,然后投票选取票数最高的,分类器就把x归为票数最高的那个类,那分类器预测的对否?通过与x对应的标签进行对比,就知道预测的对不对。那么问题来了,grid_search.fit(X_train,y_train)只是传入了X_train,y_train ,并没有看到有传入x,那从何知道哪个是精确度最高的分类器?
使用交叉验证,而非分割训练,测试数据集的方式获得的准确度,具体可以参考第八章:)加油!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14