学好具体算法和机器学习的实际应用之间有哪些距离?

来源:4-1 k近邻算法基础

神经旷野舞者

2018-01-01

刚才看到周志华老师教材的 如何使用本书(写在第十次印刷之际)

里面提到:

以为机器学习是若干种算法(方法)的堆积, 熟练了“十大算法”或“二十大算法”一切即可迎刃而解, 于是将目光仅聚焦在具体算法推导和编程实现上; 待到实践发现效果不如人意, 则又转对机器学习发生怀疑. 

须知, 书本上仅能展示有限的典型“套路”,而现实世界任务千变万化, 以有限之套路应对无限之变化, 焉有不败!现实中更多时候, 需依据任务特点对现有套路进行改造融通.算法是“死”的, 思想才是“活”的. 欲行此道, 则务须把握算法背后的思想脉络, 无论创新科研还是应用实践, 皆以此为登堂入室之始. 本书在有限篇幅中侧重于斯, 冀望辅助读者奠造进一步精进的视野心法.读者由本书初入门径后, 不妨搁书熟习“套路”, 数月后再阅, 于原不经意处或能有新得.

感觉机器学习就是算法加编程实现啊,如果能自己实现几个机器学习库的算法就更加厉害了;理论上会公式推导就更加厉害了。

但是看到这句话,不知道是什么意思,难道机器学习的实际应用很复杂吗?后面又提到算法背后的思想,感觉比较玄乎,学了算法会编程实现,然后选好特征,做好数据预处理,选择合适的算法不就可以投入使用了吗?

写回答

1回答

liuyubobobo

2018-01-02

首先,对于不同的领域,特征工程极其重要,其中可谓千变万化,可以说,不同的领域的前沿,都或多或少的都在进行特征工程的工作。你说的“选好特征,做好数据预处理”这句话,看似轻松,实际很可能是最难的。实际情况很有可能是,没有好的特征,怎么办?或许你要造特征;或许更有用的特征你没有收集到;或许只是你的数据量不够大,使得已有特征没有显著;又或许你的数据噪音过多,淹没了有用的特征,等等等。怎么分析出下一步要干什么?数据预处理同理。


其次,继续看这门课程,就会看到,对于同一种算法,怎么评价他得到的结果是一件极其重要的事情。不是说在训练数据集上获得一个好的数字拿到真实环境就ok了。测试结果很好,真正实际应用结果却很差是常事儿。这个可能只有你真正使用机器学习实践才会意识到。希望你能够通过这个课程的学习,也可以看出机器学习算法和传统算法的不同。机器学习不是简单的实现功能就好了。其中包含大量的对数据本身的探索过程,对问题深入的挖掘过程。这也是为什么大多数公司要机器学习人才至少是研究生,最好是博士生的原因。因为合理的运用机器学习需要做研究的素养,而绝不是根据需求写出来代码就OK了。不然的话,机器学习也太简单了:)


加油!

4
13
liuyubobobo
回复
fangxingjing
这个观点我整理成了一篇文章发在了我的公号上:https://mp.weixin.qq.com/s?__biz=MzU4NTIxODYwMQ==&mid=2247483901&idx=1&sn=c6a6e50354f1abbf2109b1d62bcf5237&chksm=fd8caebbcafb27adca8478a851f9ddf82623ba0175dbca3921f9f3cd1df6e431113967baf88b&token=1791192908&lang=zh_CN#rd :)
2019-04-27
共13条回复

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

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

5856 学习 · 2437 问题

查看课程