采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
首先,fit是指通过机器学习算法训练模型的过程,是吧?fit翻译过来就是拟合
在kNN那一章,fit是指通过网格搜索找到最佳参数;
在线性回归这一节,fit是指找到ab的值;
是不是应该这样理解呢?
然后,我觉得kNN算法如果不需要找最佳参数的话,好像是等同于没有fit的过程,但老师说过这个其实是有fit的,因为可以认为训练集本身就是模型?但模型不是在fit之后吗?
对线性回归的理解没有问题(更广义的,是寻找 theta 的值。)
但是对于 kNN,理解有一些问题。我们实现的 kNN 算法是一个不需要 fit 的算法。所以,在我们实现的 kNN 算法中,fit 只是简单的把数据扔进 kNN 的类里,没有任何的计算过程:https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/04-Accuracy-Score/playML/kNN.py
我们只不过是为了统一机器学习的模型的 pipeline,给 kNN 这个类设立了 fit 函数。但是,这个 fit 没有做事情。你在课程后续还会看到一些算法在 sklearn 的封装上有这样的特点,比如这个问题的第一个提问:http://coding.imooc.com/learn/questiondetail/116263.html 具体 pipeline 是什么,课程后续会介绍的。
简单来说,fit 就是对训练数据集做一些事情,来帮助预测函数得到预测结果的。比如线性回归,要想得到预测结果,就必须有 theta 参数。所以,fit 就是用来求出这些 theta 参数的。近乎除了 kNN 算法,所有其他算法在 fit 的过程中都需要做事情(甚至是所有的主要工作都在 fit 中),所以,你再看几个算法的 fit,把他们拿到一起比较,可能会理解的更清晰。
==========
网格搜索不是 kNN 的 fit,网格搜索是一种通用的搜索超参数的方法。网格搜索不是一个“模型”,网格搜索是不断变换模型的超参数,来获得一堆模型,然后取这堆模型中最好的一个。
继续加油!:)
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
3.3k 19
4.3k 17
3.7k 15
2.1k 15
2.0k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号