大多介绍机器学习和深度学习的文章比较晦涩枯燥,充满数学公式或代码,对于文科生或者数学基础不好的人来说很难懂,因此我希望写出文章,让文科生也能入门机器学习和深度学习。
之前做过AI产品,也阅读了些资料和书籍,总结一下学习和收获,希望能成为优秀的AI产品经理。本文是不包含深度学习的机器学习基础介绍。
一、机器学习简介
(一)机器学习的概念
什么是机器学习?简单来说,机器学习就是把无序的数据转化为有序的信息。例如对于垃圾邮件的检测,检测一个单词是否存在没有太大的作用,然而当某几个特定单词同时出现时,再考察邮件长度和其他因素,就能判断一个邮件是不是垃圾邮件。
(二)机器学习的任务
机器学习的主要任务是回归和分类。回归和分类的区别是:
回归(regression):输出/预测结果是连续的,例如:预测房价,预测气温,预测播放量。
分类(classification):输出/预测结果是离散的,例如:图像分类,判断肿瘤良性/恶性,判断是否为垃圾邮件。
(三)机器学习的几种类型
业界类都把机器学习分为四种类型:监督学习、无监督学习、强化学习、迁移学习。
1.监督学习:就是人们常说的分类。通过已有的做好标注的训练样本(已知数据以及其对应的输出,即有了分类信息的数据及其输出的”正确答案“)去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。
举例来说,如果要预测某地区的房子大小与价格的关系。我们将某地区的房子大小与价格这组数据作为“输入”,换句话说,就是我们给算法提供了一套“标准答案”。之后,我们希望算法去学习标准输入和标准答案之间的联系,以尝试当我们输入其他类型的数据,机器学习能给我们提供更为标准的答案。
2.无监督学习:与监督学习对应,此时数据没有类别信息,也没有正确答案。通俗的来说,就是给你一组数据,然后不告诉你有关数据的任何正确答案。然后问你:“你能在这些数据中找到一些有趣的结构吗?” 这就是无监督学习问题。
它与监督学习的不同之处,在于我们事先已有样本没有标注,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。
无监督学习包括的类型:
聚类:将数据集分成由类似的对象组成多个类。
密度估计:通过样本分布的紧密程度,来估计与分组的相似性。
3.强化学习:就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大。由于外部给出的信息很少,强化学习系统必须依靠自身的经历进行自我学习,通过这种学习获取知识,改进行动方案以适应环境。
举例来说,我们从小受教育时,老师给我们没有标准答案的试卷,我们考试分数越高,老师奖励的越多,则我们受到激励,努力调整自己的学习速度、策略等(类似计算机算法模型的参数),以使自己的答案正确的越多。
4.迁移学习:大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的参数分享给新模型从而加快并优化模型的学习不用像之前那样,从零开始学习。迁移学习,就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练数据集。
下面例举用于执行分类、回归、聚类、密度估计的机器学习算法。
二、机器学习几种算法简介
(一)K-近邻算法
K-近邻算法:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集特征最相似数据(最近邻)的分类标签。
一般来说,我们只选择样本数据集中前k个最相似的数据,这就是K-近邻算法中K的出处。最后选择K个最相似数据中出现次数最多的分类,作为新数据的分类。
简单来说,K-近邻算法采用测量不同特征值之间的距离进行分类。
K-近邻算法优点是:精读高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高、空间复杂度高,因为内存中需要存储所有训练样本点,并且要计算每个新样本点到所有训练样本点之间的距离。 另一个缺点是无法给出任何数据的基础结构信息,因此我们无法知道实例样本具有什么特征。
例如用K-近邻算法分类爱情片和动作片。假如有一部未看过的电影,如何确定它是爱情片还是动作片?首先我们需要知道这个未知电影存在多少个打斗镜头和接吻镜头,计算未知电影与样本集中其他电影的距离,按照距离递增排序,可以找到k个距离最近的电影。假设k=3,K-近邻算法按照距离距离最近的三部电影的类型,决定未知电影的类型,再假设这三部电影都是爱情片,则判定未知电影是爱情片。
(二)ID3决策树
决策树算法训练的目的在于构建决策树,希望能够得到一颗可以将训练样本按其类别进行划分的决策树。决策树分类器就像带有终止块的流程图,终止块表示分类结果。如图所示的流程图就是一个决策树,正方形代表判断模块,椭圆形代表终止模块。图构造了一个假想的邮件系统,
构造决策树,首选需要解决,当前数据集上哪个特征在划分数据分类时起决定性作用。找了找到决定性的特征,划分出最好的结果,需要评估每个特征。决策树算法每次选择区分度最高的特征,使用其特征值对数据进行划分,每次消耗一个特征,不断迭代,直到所有特征被使用为止。
决策树算法采用熵来计算特征的区分度。开始处理数据时,首先需要测量集合中数据的不一致性,也就是熵(熵越大表示数据集越混乱,熵越小表示数据集越混乱),然后选择最优方案划分数据集。
K-近邻算法的最大缺点在于无法给出数据的内在含义,决策树的主要优势在于计算复杂度不高,数据形式非常容易理解。
其缺点在于可能产生过度匹配问题。通过几个判断条件,决策树非常好地匹配了样本数据,然而这些匹配选项可能太多了。为了减少过度匹配,我们可以裁剪决策树,去掉一些不必要的叶子结点。如果叶子节点只能增加少许信息,则可以删除该节点,并将它纳入其他节点中。
参考书籍:《机器学习实战》