机器学习
来源:12-6 决策树解决回归问题

uuugggd
2019-03-01
花了差不多两周时间,学到了决策树这里,也一路跟波波老师推演公式到现在,感觉里面的算法不是很复杂,如果能够手推推算出公式,接下来的代码实现就很简单了。
虽然跟波波老师学完后也能自己动手写模型算法,但是明显sklearn里面的封装的对应算法更为精妙高级。
那么是不是在以后,明白了算法模型的原理后,就直接调用sklearn来实现即可?
以后每天的工作是不是就读文献,然后找到对应的轮子来调参实现?
1回答
-
1)是不是在以后,明白了算法模型的原理后,就直接调用sklearn来实现即可?
是的:)这是因为,sklearn中所封装的,不仅仅是机器学习的算法,还包括大量的数值分析算法,保证了求解的正确性和快速性。同时,体系中建设,比如Pipeline等,都将让你在使用过程中更方便:)
2)以后每天的工作是不是就读文献,然后找到对应的轮子来调参实现?
看你的工作是什么。
如果你的工作是业务向的,那么八成是这样的。
如果你的工作是研究向的,那么看你研究的是什么。如果你研究的领域不是机器学习领域,而是其他领域,机器学习只是工具,那么八成也是这样的。(你的重点在具体领域,而非机器学习。)但对于研究向的,至少我接触过的几个领域,也会大概率的,简单调用sklearn的接口(或者现有框架的接口),是不能满足全部需求的。
但如果你的工作就是研究机器学习算法,或者是软件架构向的,或者在一些特别领域需要使用特殊的方法,那么八成不是这样的。因为对于这样的工作内容,sklearn(或者任何现有框架)是完全不能满足要求的。
毕竟,sklearn不是十全十美,机器学习也在不断发展,可以预见的,10年后人们大概率的不会用sklearn,即使用,版本号肯定不是现在的样子。不管是sklearn与时俱进,还是新的框架代替它,都是重要且富有创造性的工作。
比如,sklearn本身对深度学习的支持是非常不好的。如果印象没错,对简单神经网络的支持都是近年才加入的。更别提对于深度网络,cnn,rnn,等的支持,是完全没有的。所以才有tf,pytorch,keras等框架。但是这些框架就足够了吗?肯定不是。随着机器学习的不断发展,最新的,最前沿的技术,肯定是要先被单独实现,之后根据情况一步一步融入框架中(甚至很多算法由于过于复杂或者不通用,不会被涵盖在任何框架中)。难道alpha go是用现有框架调参出来的吗?:)
要说sklearn不支持的,或者支持不够的,那简直太多了。除了深度学习,再比如时序数据的分析;比如增强学习;比如自然语言处理;比如图像处理。。。。另一个角度是软件工程向的。sklearn的一个大的问题是:所有模型都是内存模型,都需要把所有数据读进内存执行。但是在大数据的今天,数据规模动辄几十个gb甚至上tb,怎么办?大概三年前,硅谷的一个团队开发了一个新框架,解决了这个问题。现在,这个团队已经被苹果收购了:)
更不用提,现在人工智能界,普遍对现有的所有框架都不够满意,甚至对这些框架所基于的语言都不够满意,在思考能否创造一个专门适于人工智能的研究和发展的语言,看,这又是一个大工程大项目,和调调参数截然不同。
当然,这个思路更底层了,要说底层,在硬件界,专门适用于某种特定人工智能算法的芯片(现阶段深度学习为主)也一直是一个研究方向(其实现在已经有对应的产品了):)
所有的这些,都不是简单地调调参,都需要你在理解人工智领域的算法的基础上,结合更多其他领域的知识,创造出更新的产品和工具:)
加油!:)
130
相似问题