有哪些应该去实现一遍的机器学习和自然语言处理的算法?

理由
举报 取消

NLTK和sklearn等python类库已经实现了一项任务中大多数需要的工具。理解算法后也能够应用,包括一些调参的部分。但总感觉工程能力不足,只能流程化得完成一项任务。中间总觉得差点什么。是不是应该去实现一些算法和基础ETL代码来增加编程能力?

2018年2月3日 2 条回复 1149 次浏览

发起人:Igor W 初入职场

知之为知之,不知则求知。

回复 ( 2 )

  1. 匿名用户
    理由
    举报 取消

    你所谓的编程能力,是指把算法转化为代码的能力呢,还是写出高质量代码的能力?

    前者的话,随便试着实现一些常见的算法,比如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里的错字、语法错误,还有变量名。

    之后如果你能写出近似质量的代码,并且给这些开源项目贡献一些代码,那编程能力应该算是没问题了。至于平衡,并没人规定你编程能力强了应用算法就会弱吧?两者都强不行吗?

  2. 匿名用户
    理由
    举报 取消

    应该想办法去完成更难的项目,见识各种类型的数据

我来回答

Captcha 点击图片更换验证码