机器学习从入门到放弃?只因没遇到 sklearn

机器学习从入门到放弃?只因没遇到 sklearn_第1张图片
机器学习的热度一直高居不下,无疑是很多人向往的舞台。但作为现在的潮流,想学习也不是那么容易的事,毕竟不是单纯敲敲键盘就能做好的,除了掌握一些库的运用,还得有一定的数学基础,不然的话很多算法的原理是很难看懂的,更不用说灵活运用了。这样就导致机器学习的学习成本比较高,入门的门槛也对应地很高,因此很多初学者就在那些数学公式里面淹没了,之后好不容易上岸了,又要掌握相应的机器学习库,有些库在刚开始是很难用的,比如 TensorFlow2 出来之前的 TensorFlow1 就让好多人劝退了,给了 Pytorch 发展的机会,我觉得这样的竞争是很好的,不然我们也看不到涅槃重生的 TensorFlow2 了。

当然,就像这些库的发展一样,随着技术越来越成熟,机器学习的门槛也慢慢降低了,对初学者越来越友好,就比如本文要介绍的 sklearn,解决了很多开发问题。在了解 sklearn 之前,我只用过 Pytorch 和 TensorFlow2,当然只是有一定的使用基础,构建过一些模型来解决问题,离真正的灵活运用还有很长的路要走。首先 sklearn 让我省去了构建模型的烦恼,因为如果对需要使用的模型不了解的话,是无法构建成功的,网上确实有很多例子可以借鉴,但直接复制过来并不能让我们加快理解速度,因为对模型的构成不太了解,每一步是怎么衔接的也不清楚,如果代码不匹配出了问题是无法解决的,反而会打击自己学习的积极性。有人可能会说为什么不先学习理论呢,因为理论是要和实际相结合的,特别是这种操作性强的学科,如果能对成品进行操作,可以加快自己的理解,在操作中看到的一些现象可以帮助自己了解理论的构成,可以起到事半功倍的效果。这样就陷入一个怪圈了,不懂理论就无法构建模型,而没有成品模型又无法理解理论的构成。

这时 sklearn 就发挥用处了,如果只是要使用模型,它包含了很多封装好的方法,直接调用就可以构建模型了,结果清晰可见,当我对这些模型输入数据并得到训练结果后,直观地了解了此模型的用处,就可以对是否学习模型的原理进行决策,并且当我选择学习时,因为我已经深刻了解了模型的用处,在看底层架构和原理时理解得会更快,之后就可以独立使用其它库构建模型了。

这里不是说 sklearn 就无敌了,毕竟它里面的算法是封装好的,所以为了匹配大多数情况就舍弃了定制性,有时候为了加快训练速度我们需要对模型进行优化,但 sklearn 是直接使用方法构建的,对细节的处理不如其它库方便;另外 sklearn 的模型是有限的,并没有包含所有的算法。所以需要根据自己的情况来选择,比如时间紧凑时快速构建模型来解决问题,或者想知道对于某个问题哪个模型更适合时直接调用来验证,之后在自己构建模型。通过这个特性,让我发现了 sklearn 非常适合初学者,毕竟门槛在那里,没入门你会觉得所有东西都很难,而且对于每一层的联系看得眼花缭乱;但只要你入了门,即使某个问题你依旧不懂,但你可以看到通往答案的那一条路,有了正确的方向。且听我一一道来

想快速了解 sklearn 的使用方法,可以看看我的这几篇文章:
sklearn库的使用步骤
sklearn垃圾邮件识别
sklearn文本聚类分析


从流程分析

机器学习的流程图大致如下:
机器学习从入门到放弃?只因没遇到 sklearn_第2张图片
机器学习的关键就是模型了,数据决定了机器学习的上限,但模型决定了机器学习的下限。一个好的模型不仅能节约训练时间,还能提高准确性。

对于初学者而言,想要构建模型,必须先学会基础知识,比如各种激活函数、正则化、反向传播、支持向量机、降维、神经网络等等,而且线性代数得学好,如果没学过或者只知皮毛那很难看懂的。紧接着就是各种算法的原理了,它们是整个模型的架构。

这样就导致学习过程很漫长,当然大佬就另说了,因此这段时间是很难熬的,学之前脑子里面全是AI下棋完败人类、自动驾驶蛇皮走位等等无限风光的情景,学的时候却是一堆堆矩阵疯狂变换,完全没什么体验,因此伴随你的不是成就感而是枯燥,你甚至怀疑这些公式是不是真的能识别文本、语音和图像这些东西。

然而等你学完这些基础内容,准备用代码大展宏图时,又发现要学各种机器学习库的操作,比如突然冒出的词tensor及其维度变换、拼接拆分、数据统计等,还有什么自动求导、激活函数、模型训练工具的使用等。当把这些东西都掌握了之后,再将数据处理和导入等操作搞明白就会发现自己可以做些事情了,也就算入门了,之后就会发现新世界的壮观景象。

试想一下,如果在学习基础或者模型之后就能亲眼看到各种数据被模型训练后得到应有的结果,你还会觉得枯燥吗,估计你会恨不得立马把模型亲自构建出来。


从情绪分析

如果学习一样东西,让你迟迟找不到感觉、很长时间得不到反馈,那么你很容易对自己产生怀疑,比如质疑自己的能力,会想自己是不是不适合做这行。哪怕你知道这件事情很难,还是会不可避免地产生溃败感,特别是在自己找不到方向的时候。因为你觉得自己该学的都学了,但和成品之间还是有很大的距离。

不过这并不是你还没学够,而是少了一个契机,少了一个见证过程的机会。有些问题大神指点两句可能一两分钟就解决了,但新手自己找可能一两个小时都找不到原因,这就是见识还不够,也许问题本来就很简单。

sklearn 就是让你看清路线的工具。

你可能感兴趣的:(Python,机器学习)