机器学习理论研究者要不要学编程和数据结构与算法

在我看来,是非常重要的!

去年有一个数学系的博士生找到我,她发明了一份离线数据流聚类的算法,我实现代码。拿到她的公式算法流程后,听她讲了一遍,有很多问题。

这个聚类算法是基于各种各样的聚类算法改的,可以看出,没什么特别的创新之处。这不用说,这是大多数算法研究的现状。

不出所料,我在帮她写代码的时候,每一步都会新产生各种各样的问题。


我在用C++给她实现算法,有很多细节的部分,包括是存数组的index,还是值,各种排序,怎么做。这些问题那些搞数学出身的根本考虑不到。

然后,整个算法开辟了大量的数组,空间复杂度非常大,可是我问她,她连空间复杂度时间复杂度都不会求。

想问问算法的并行异步IO读取文件,根本没有考虑的事儿。

事实上,我的编程水平能力,我的算法能力,才是她这个算法性能能提高多少的关键。我是用多层循环还是矩阵运算,她的程序速度能有天壤之别。

我也并不是ACM大神,只是一个大三的EE苦逼自学CS的弱渣。她事先只是想找个coder帮她写一下,我也没有参与到算法研发的过程。但是没想到,真的,一个好的算法=Coding+数学。

想想Xgboost这种算法,陈天奇以前也是ACM出身,算法基础杠杠的。人家才能基于GBDT,在并行处理、内存缓存这些地方出彩。人家才能在打kaggle的实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值