机器学习简介
1. 数据,大数据是必备条件,是机器学习的输入信息,基于大数据,才使得模型的训练效果更好,结果更具有实际意义
2. 算法,通过特定算法对数据进行运算,得到一个较优的模型,根据不同的目标,有回归,分类,聚类等不同类别的算法
3. 模型,模型是算法处理得到的结果,比如根据线性回归来得到一个最终的回归方程,这个方程就是一个具体的模型,可以对新的数据进行预测
从这几个要素之间的关系可以看出,数据是机器学习的输入,算法是机器学习的工具,模型是机器学习的输出。按照输入数据的特征,机器学习可以分为两大类,监督学习和非监督学习。
所谓监督学习,就是输入数据是带标签的,标签和我们希望求解的目标是相同的,是事先定义好的类别,这里的类别可以是离散型,也可以是连续性。最典型的比如垃圾邮件分类,输入数据为事先判断为垃圾邮件和非垃圾邮件的数据,然后选择适当的分类算法来构建模型,来区分一封信的邮件是否为垃圾邮件。
对于连续性的标签,其实就是回归问题,输入数据包含了自变量和因变量的值,通过回归算法来求解一个回归方程,然后根据此回归方程来预测新的数据的因变量值。
所谓非监督学习,就是输入数据是无标签的,典型的比如聚类,输入数据只是样本的各个特征,通过聚类算法将样本分为不同的类别。这个类别仅仅是模型的输出,在输入数据中是不存在的,这就是数据无标签的含义。
具体地,一个机器学习的完整流程可以分为以下几个步骤
1. 收集数据,可以是人工收集整理,也可以是从互联网上爬取
2. 数据清洗,清洗的含义是对原始数据进行处理,比如缺失值的处理,输入变量单位的转换,错误数据的纠正等
3. 特征工程,对原始的输入变量进行处理,比如对单个变量重新编码,合并多个变量来构建新变量,或者降维处理等,目的是从众多的原始输入变量中,筛选与构建出与目标变量密切相关的变量
4. 建模,挑选合适的算法对输入数据进行处理,在此过程中,要不断修改模型的参数,也就是参数调优,得到较好的模型;
5. 验证模型,建模得到的模型在训练集上效果较好,为了验证模型的泛化能力,还需要用验证集来进行验证,常规的做法当时是训练集和验证集是两个独立的数据集,在数据量较小的情况下也可以采取交叉验证的方法;
6. 模型的部署,最终得到的模型是为了解决特定的业务场景,需要加模型封装到完整的业务流程中去,构建一个完整的应用程序,比如自动检测邮件是否为垃圾邮件的小程序
从学习的角度来看,我们需要掌握数据清洗,特征工程,算法建模,参数调优,模型验证等各个环节。为了降低机器学习的使用门槛,有很多的框架被开发出来供我们使用,以python语言为例,有scikit-learn, tensorflow, pytorch等。
scikit-learn是其中最受欢迎的机器学习库之一,针对回归,分类,聚类等不同目标,提供了各种算法,而且配套了数据清洗,模型验证等一系列功能,通过这个库,可以覆盖了机器学习模型开发的完整生命周期,是入门机器学习最好的库之一。在后续的章节,会详细介绍该库的具体用法。