有哪些应该去实现一遍的机器学习和自然语言处理的算法? 举报 理由 举报 取消 NLTK和sklearn等python类库已经实现了一项任务中大多数需要的工具。理解算法后也能够应用,包括一些调参的部分。但总感觉工程能力不足,只能流程化得完成一项任务。中间总觉得差点什么。是不是应该去实现一些算法和基础ETL代码来增加编程能力? 2018年2月3日 2 条回复 1109 次浏览 学习,数据挖掘,机器,算法,自然语言
回复 ( 2 )
你所谓的编程能力,是指把算法转化为代码的能力呢,还是写出高质量代码的能力?
前者的话,随便试着实现一些常见的算法,比如SVM、MLP,应该就可以了。
后者相对更困难,不过既然你知道scikit-learn,可以先去Contributing 看看他们对代码有什么要求,然后再去看看里面具体的代码。从最简单的算法看起,看看他们怎么实现,代码可读性有多好,documentation写的有多充分。
看完一些代码可以去看看之前merge的一些规模比较大pull request里的讨论,比如[MRG + 2] Mlp with adam, nesterov’s momentum, early stopping by glennq · Pull Request #5214 · scikit-learn/scikit-learn · GitHub,看看一个新功能添加要经过多少方面的讨论,大到用哪些优化算法、哪些默认参数,小到doc里的错字、语法错误,还有变量名。
之后如果你能写出近似质量的代码,并且给这些开源项目贡献一些代码,那编程能力应该算是没问题了。至于平衡,并没人规定你编程能力强了应用算法就会弱吧?两者都强不行吗?
应该想办法去完成更难的项目,见识各种类型的数据