请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Gridsearch 的问题

老师,你好,gridsearch中还没predict() 就能通过gridsearch.best_score_ 知道准确度,都没看到哪步传了新的样本,没传新样本怎么计算距离,怎么知道准确度呢? 

https://img1.sycdn.imooc.com//szimg/5b09012500010a0511930634.jpg

正在回答

3回答

liuyubobobo 2018-05-26 19:10:11

非常好的问题。


grid_search做的事情是,针对同一组训练数据,使用同一个算法,针对不同的超参数组合,看哪组超参数组合的效果更好。这里为了评判哪组超参数组合的效果更好,对于每一组超参数组合,针对训练数据集,就会得到一个分数。grid_search.best_score_ 就是指这个分数。


具体获得这个分数的方法,我们在这里还没有讲,叫做“交叉验证”,相应的英文是Cross Validation,也就是我们的grid_search对象所对应的类:GridSearchCV中,CV的意思。


在这个课程的第八章,我们将仔细学习什么是交叉验证。届时,回头看这个问题,你应该就能理解grid_search内部究竟运行了怎样的逻辑,这个grid_search.best_score_ 是怎样计算出来的了。在这里,我们先知道,grid_search通过一种算法(交叉验证),帮助我们找到了对于不同的超参数组合,最优的那个超参数组合,就好了:)

0 回复 有任何疑惑可以回复我~
提问者 慕田峪210210 2018-05-26 19:28:58

额、原来是交叉验证内部的逻辑,我学完回头再看看,谢谢老师!

0 回复 有任何疑惑可以回复我~
DoNGDonG4 2018-05-26 15:25:19

grid_search 是使用的训练数据来拟合,然后找出精确度最高的那个分类器,grid_search.fit(X_train,y_train)这里使用了训练样本,从这个样本出发,创建出60个分类器,从其中选出精确度最高的那个,然后在用最好的那个去预测测试数据。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕田峪210210 #1
    对于KNN这个算法来讲,由于是通过计算x_train 与 x 之间的距离,然后投票选取票数最高的,分类器就把x归为票数最高的那个类,那分类器预测的对否?通过与x对应的标签进行对比,就知道预测的对不对。那么问题来了,grid_search.fit(X_train,y_train)只是传入了X_train,y_train ,并没有看到有传入x,那从何知道哪个是精确度最高的分类器?
    回复 有任何疑惑可以回复我~ 2018-05-26 16:06:24
  • liuyubobobo 回复 提问者 慕田峪210210 #2
    使用交叉验证,而非分割训练,测试数据集的方式获得的准确度,具体可以参考第八章:)加油!
    回复 有任何疑惑可以回复我~ 2019-03-04 02:16:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信