采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果来了一个实际问题,我该选择非参数学习还是参数学习呢?我该选择哪些算法呢?假设一个回归问题,我并不知道是线性还是非线性规律,那么解决思路是:先用线性回归来做,评估后若不对,再改用多项式回归来做吗? 比如boston房价集,有13个特征,这时是先把所有特征用上做线性回归吗? 就是,面对一个实际问题,我该做些什么工作去解决这个问题。 谢谢老师!
没有免费的午餐定理告诉我们的就是:在可能的情况下,我们应该尽可能去尝试用尽可能多地方案去解决。但是这个过程不是瞎试,我们需要了解各种方法的不同,用各种方法得到的结论逐渐组合优化我们的方法。这也是机器学习解决问题的思路和传统算法最大的不同。传统算法是解决一个固定问题,最终通常都存在一个最优解。而机器学习不同,这是一个不断探索,不断优化,不断认清自己的目标的过程,而不是得到一个固定答案的过程。
比如我在课程中曾经说过,对于大部分数据,使用线性回归做一下尝试总是没有错的,就是因为即使我们得到的预测结果不够好,但是我们通过线性回归的结果,依然可以看出来当前数据哪些特征和结果之间强相关;哪些弱相关。
再比如,通过对非参数学习算法的实验,我们可能会发现某些预测结果上有固定的偏差,这些偏差很有可能是因为已知数据集中某些特殊的outlier导致的。这也是非参数学习的特性所决定的:对特殊的数据敏感。尝试这些方法的过程中得到的这些结论,都可以帮助我们更加深刻的理解我们的数据。
另外,一些具体的领域,有相对认可度比较高的方法,比如图像领域的CNN;时序数据领域的RNN或者LSTM(这两个模型都是深度学习的模型);自然语言处理领域的SVM等;语音识别领域的隐马尔科夫模型等,这些已经被前人验证的可以在固定领域有较好表现的模型,在具体领域学习的时候需要注意。
最后,你说到多项式回归。其实多项式回归的本质是特征工程——也就是挖掘可能存在更好的特征的过程。这个过程其实在机器学习领域非常重要。具体可以参见这个问答:https://coding.imooc.com/learn/questiondetail/40722.html
但要注意,这个过程也不是有严格的先后顺序的,通常也是混杂在一起的。做好的特征使用算法去实验;在实验中根据表现的结果不同,反过来去优化特征工程的过程。一个好的机器学习工程师,并不一定可以非常好的解决问题(因为机器学习领域很多要解决的问题,实在是太复杂了,甚至很有可能使用现有的技术根本就无法解决好),更关键的是:能够解读机器学习算法的结果,理解这样的一个结果意味着什么,进而积极地去采取下一步可能的更优方案。拥有这样的素质,需要大量的经验积累。
谢谢老师的耐心解答!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14