学好具体算法和机器学习的实际应用之间有哪些距离?
来源:4-1 k近邻算法基础
神经旷野舞者
2018-01-01
刚才看到周志华老师教材的 如何使用本书(写在第十次印刷之际)
里面提到:
以为机器学习是若干种算法(方法)的堆积, 熟练了“十大算法”或“二十大算法”一切即可迎刃而解, 于是将目光仅聚焦在具体算法推导和编程实现上; 待到实践发现效果不如人意, 则又转对机器学习发生怀疑.
须知, 书本上仅能展示有限的典型“套路”,而现实世界任务千变万化, 以有限之套路应对无限之变化, 焉有不败!现实中更多时候, 需依据任务特点对现有套路进行改造融通.算法是“死”的, 思想才是“活”的. 欲行此道, 则务须把握算法背后的思想脉络, 无论创新科研还是应用实践, 皆以此为登堂入室之始. 本书在有限篇幅中侧重于斯, 冀望辅助读者奠造进一步精进的视野心法.读者由本书初入门径后, 不妨搁书熟习“套路”, 数月后再阅, 于原不经意处或能有新得.
感觉机器学习就是算法加编程实现啊,如果能自己实现几个机器学习库的算法就更加厉害了;理论上会公式推导就更加厉害了。
但是看到这句话,不知道是什么意思,难道机器学习的实际应用很复杂吗?后面又提到算法背后的思想,感觉比较玄乎,学了算法会编程实现,然后选好特征,做好数据预处理,选择合适的算法不就可以投入使用了吗?
1回答
-
首先,对于不同的领域,特征工程极其重要,其中可谓千变万化,可以说,不同的领域的前沿,都或多或少的都在进行特征工程的工作。你说的“选好特征,做好数据预处理”这句话,看似轻松,实际很可能是最难的。实际情况很有可能是,没有好的特征,怎么办?或许你要造特征;或许更有用的特征你没有收集到;或许只是你的数据量不够大,使得已有特征没有显著;又或许你的数据噪音过多,淹没了有用的特征,等等等。怎么分析出下一步要干什么?数据预处理同理。
其次,继续看这门课程,就会看到,对于同一种算法,怎么评价他得到的结果是一件极其重要的事情。不是说在训练数据集上获得一个好的数字拿到真实环境就ok了。测试结果很好,真正实际应用结果却很差是常事儿。这个可能只有你真正使用机器学习实践才会意识到。希望你能够通过这个课程的学习,也可以看出机器学习算法和传统算法的不同。机器学习不是简单的实现功能就好了。其中包含大量的对数据本身的探索过程,对问题深入的挖掘过程。这也是为什么大多数公司要机器学习人才至少是研究生,最好是博士生的原因。因为合理的运用机器学习需要做研究的素养,而绝不是根据需求写出来代码就OK了。不然的话,机器学习也太简单了:)
加油!
4132019-04-27
相似问题