如何入门数据分析、机器学习

本人学习机器学习也是一年有余,虽说不是精通,但多少还是入了这个门。
总是会有很多人问我是机器学习该如何入门?亦或是如何学习?
在我的学习之路中,取其精华去其糟粕后,大致是如下的流程。

step1:学习数据分析的流程
step2:学习机器学习的模型
step3:学习Python的基础语法
step4:学习Python的库
step5:Kaggle实战

上述流程不一定需要按照顺序一步步走下来,毕竟有的人选择先学习Python再学习数据分析的流程与模型也是可以的。但是,这些都是需要掌握的基础。同时,数据分析不能只是简单的停留在纸上谈兵,更多的需要结合实战,而进入实战首先是要了解流程与语言。

第一步:学习数据分析的流程

数据分析的流程大致有如下这几个步骤,针对每一个步骤都需要知道它在做什么,并了解不同的模型去处理它。

1. 问题分析与定义

在数据分析的过程中,我们往往接触到的问题与数据都是不曾见过的、不是所接触的领域,令人感觉到陌生。而一旦对于问题认知的理解出现偏差,这都将影响数据分析的方向及结论。
因此,在进行数据分析之前,我们建议你先对问题有个清楚的认知,并能通过自己的话来阐述问题的需求。

tip:通过结合背景知识等参考文献来进行问题分析是个聪明的选择。

2. 数据获取

数据的获取往往是一大难题,能获取到数据集的大小甚至于会影响模型的选择。在实战的过程中,你可能会遇到数据集事先给定的情况,这种情况似乎能让人省事很多,却又往往容易限制你的发挥。
提前了解一些查询数据的网站能帮助你在收集数据的过程节省时间。

参考:

3. 数据预处理

现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据分析,或分析结果差强人意。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。把这些影响分析的数据处理好,才能获得更加精确地分析结果。
比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。
那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。
在考虑这些问题的同时,我们往往会需要通过浏览与绘制数据来掌握数据的分布特征,为我们对数据的预处理及模型训练过程中做的各种决策提供信息。如果你选择了 Python 路线,那么我们推荐你使用专门为这个目的设计的 Seaborn 库。其中有高层面的绘图函数,可以绘制许多最常见和有用的图表。

参考

4. 特征选择与建模

在建立模型之前需要先进行合理的特征选择,我们通常利用特征选择来降低维度,使模型泛化能力更强,减少过拟合。好的特征选择能够提升模型的性能,更能帮助理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。
而在建立模型的时候,我们建议你先进行头脑风暴而并非武断的选择了一款模型。因为能够解决问题的模型十分之多,过早的选择模型会阻碍你的思维。在相同的数据样本上尝试不同模型,通过对比再进行选择才是更为科学的。你最好对各类模型都有一定的掌握与了解,知道模型适用于什么条件与情况下。
在学习模型的过程中,我建议你先从数学的基本模型入手(数学模型不等同于机器学习的模型)。从数学的基本模型入手,先理解数学建模的思想,再一步一步走入机器学习的模型。

参考书目:

  • 数学建模(司守奎)
  • 数学建模方法与应用(司守奎)
第二步:学习机器学习的模型

在你了解了数据分析的流程以及基础数学模型之后,再开始学习机器学习的模型时,你会发现异常的轻松。很多模型都是已经学习过的,这是学习机器学习模型,你会加深对它的认识与应用。

参考:

第三步:学习Python的基础语法

首先,我们推荐你选择一种编程语言,并坚持使用。Python 和 R 在 Kaggle 和更广泛的数据科学社区上都很流行。
如果你是一个毫无经验的新手,我们推荐 Python,因为这是一种通用编程语言,你可以在整个流程中都使用它。
选择了Python之后,首先需要去熟知它的基础语法,在这里推荐廖雪峰的网站。

参考:

博主曾利用Matlab做了两年的数据分析(当时数学建模主流是用Matlab),而进入实验室之后由于实验室数据分析的语言选择的是Python,而也迈入了这个坑。起初还在Python与Matlab中犹豫,直到Tensorflow框架的出现,令我果断选择了Python。原因很简单,Python的开源软件库更多,对于数据分析、机器学习更有利。

第四步:学习Python的库

Python对于想要做数据分析、机器学习的人来说可谓是非常友好了,许多库都是开源的加载,并且针对数据分析的所有流程,Python都建立了不同的库来辅助。
对于 Python,最好的通用机器学习库是 Scikit-Learn。而在往后学习深度学习的时候,您可能用到Keras;学习强化学习的时候,您可能用到TensorFlow。这些具体的库在下文的参考中都有所涉及。

参考:

第五步:Kaggle实战

现在你已经准备好尝试实际项目或者竞赛来加深自己对于数据分析的认知,在这里推荐 Kaggle 竞赛,这些竞赛分成几个类别。最常见的类别是:

  • Featured:这些通常是由公司、组织甚至政府赞助的,奖金池最大。
  • Research:这些是研究方向的竞赛,只有很少或没有奖金。它们也有非传统的提交流程。
  • Recruitment:这些是由想要招聘数据科学家的公司赞助的。目前仍然相对少见。- – Getting Started:这些竞赛的结构和 Featured 竞赛类似,但没有奖金。它们有更简单的数据集、大量教程和滚动的提交窗口让你可以随时输入。

在你参与竞赛之前,我们推荐你先训练自己的第一个机器学习模型来熟悉下数据分析的流程与机器学习的库等。Getting Started 竞赛非常适合初学者,因为它们给你提供了低风险的学习环境,并且还有很多社区创造的教程,例如预测泰坦尼克号的生存:https://www.kaggle.com/c/titanic#tutorials

请记住,结合实战学习才会更有意思哟~

本篇文章参考自Kaggle初学者五步入门指南,七大诀窍助你享受竞赛

    原文作者:陈浚豪
    原文地址: https://www.jianshu.com/p/76fae23ec844
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞