最近几年 AI 特别的火,由于人才缺口太大,所有引来了很多人的兴趣,本主题主要为那些想要入门 AI 行业的人准备,学习 AI 要徐徐渐进,AI 入门是十分难的,所有我的文章先以机器学习为引,再一点点深入。
机器学习与 AI 有什么关系?一幅图让你懂。
什么是机器学习?
机器学习研究的是计算机怎样模拟人的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善更新自身。
通俗点说就是计算机从数据中获取规律和模式,以应用的新的数据的预测上面。
机器学习种类?一幅图让你懂。
机器学习分为监督式学习和非监督式学习,监督式学习就是计算机获取的数据有标签,通俗说计算机要学习的数据上面有标注,计算机可以根据标注将相同标注的数据归为一类,再学习这类数据共同的特征,这样在未来的分析中,计算机就可以提取数据特征,与已学习特征对比,得出结论;非监督式学习相反,所要学习的数据没有标签,计算机要根据算法自己总结。
监督式学习又分两类,分类和回归。
分类:将学习的数据分为 n 类,对数据样本上抽取的特征,判断数据样本属于n 类中的哪一类。
回归:将数据样本分布在二维坐标系中,抽取特征,一般呈线性,在根据线性预测未来连续值结果。
非监督式学习分降维和聚类。
降维:将高维空间数据映射到低维空间
聚类:把 “ 距离 ” 相近的点归为一类,与分类很像,但是所用方法不同,应用方式也不同。
机器学习流程?一幅图让你懂。
建立一个效果好的模型对于机器学习来说至关重要,一个效果好的模型就需要大量的的数据,以及一个能把数据处理好的强大算法,所以模型由算法和数据组成,如果说数据决定了模型的效果上限,那么算法就是让模型的效果靠近这个上限。
机器学习目标:在给定的训练数据上总结出一个可以归纳数据特征规律、模式的模型,并且模型对新数据样本预测得到一个好的效果。
什么样的模型好呢?
泛化能力强的模型。泛化能力就是模型能很好地适用于没见过的样本。
机器学习常用评估方法:
还记得这张图么,图片中第三个模型评估有很多方法,下面会将比较常用的三种方法:
1. 留出法
对于得到的样本,把它分成两部分,一部分作为训练集,一部分作为测试集
2. k 折交叉验证法:
上图是一个10折交叉验证,将数据集D分成10份,分别将其中一份作为测试集其他作为训练集,得出10个结果,对结果求平均值,这个值就是用于调参的值,k折同理
3. 自助法:
从包含m个样本的数据集中有放回的抽取m次,作为训练集,未被抽到的作为测试集,也就是包外估计。其中每个样本抽到概率为1/m,所以一个样本在m次抽取中未被抽到的概率为(1-1/m)^m,求极限lim(1-1/m)^m约等于0.368,所以我们得出一个样本在m次抽取中未被抽到的概率为0.368,进而确定总样本中约有36.8%个样本未被抽到,记住这个数,后面有用
上面这副图就是我们常说的决策树。决策树模型是一个模拟人思考过程思想的机器模型。它是由很多个节点、分支、叶子组成。在最上面的我们称它为根节点,在机器学习中就是我们的属性。
决策树是基于树的结构进行判断的。所有人都知道树是从下至上不断分支的,每个分支都有自己的前提。决策树即根据每个属性对其判断,选择分支,得到结果,这个结果也将包含属性,再对属性判断,循环,得出最终我们要的结论, yes or no 等。
就像我们人是从小学习到大才具备决策能力,计算机也需要学习。
从上面的图中会发现,计算机学习就是找到属性并将属性放在合适的位置,做出分支,再做属性,这样一个循环的过程,我们将这个过程叫做 “ 划分属性 ” ,在介绍 “ 划分属性 ” 的方法之前,我先讲一下如何停止这个训练的循环。
三种停止条件:
属性的样本集为空。这很好理解,结点中没有样本,也就无法划分了。
属性的样本集中所有属性相同。结点下的样本都是同一种类型的样本,同样不需要划分。
属性为空
划分属性的方法即最佳属性选择方法:
信息熵是度量样本集合 “纯度” 最常用的的一种指标,假定当前样本集合D中k类样本所占比例为P(k),则D的信息熵为:
引用西瓜书上说,西瓜只有好瓜和坏瓜之分即y有1和2,P(1)可以理解为好瓜所占的比例,P(2)则是坏瓜,利用上面公式可以求出信息熵。
并且,信息熵的值越小,纯度越高。纯度指的的是里面的类别一样的相近的概率的高低。
1. ID3:信息增益
决策树ID3中使用的是信息增益的算法。
信息增益表示不确定性下降的程度,在决策树结点的选择中,信息增益最大的会放在最前面。
公式中v代表一种属性a的分支,|D(v)| / |D| 代表这种属性分支在属性样本中所占比例,信息熵D(v)是这种属性分支中的信息熵( “ 好瓜 ” “ 坏瓜 ” ),最后得出一个关于各个属性的信息增益的排序,排序最前的将作为当前结点,并且,每得到一个结点,下一个结点将重新计算。
2. C4.5:信息增益率
观察信息增益的算法,我们会发现如果一个属性的样本十分多,那么它的信息增益可能变大,这样会有些不公平,导致结果产生偏差,为了解决这种问题产生了信息增益率:
会发现所包含样本多的IV也同样大,当然,为了提高效率,会从信息增益高出平均水平的属性中做信息增益率再排序。
3. CART:基尼指数
公式反映的是从D中随机抽取样本,不一致的概率。Gino(D)越小,不一致的概率就越小,一致的概率越高,纯度越高。
基尼指数在解决二分类问题上有更好的效果,其中选取会划分后使基尼指数最最小的属性。
决策树与剪枝操作:
预剪枝:提前终止某些分支的生长。在划分属性过程中,会对比划分前与划分后的精度(精度就是准确度,例如划分前我们确定了哪些是坏瓜,但是好瓜中不确定是否还有坏瓜,当进行次此划分之后,在不确定的好瓜中确定了几个绝对是好瓜,还有一些无法确定的瓜,这样就使精度变大了),如果精度增大则可以划分,如果精度不变或减小,说明划分没有意义,则取消次此划分。
后剪枝:生成一棵树后在剪枝。它是在一颗树生成之后,再从下至上剪枝,同样对比这个结点划分前后的精度,如果精度低或平,就剪。
预剪枝与后剪枝对比:
1. 时间开销:
* 预剪枝:训练时间开销降低,测试时间开销降低
* 后剪枝:训练时间开销增加,测试时间开销降低
~ 不难看出,后剪枝在生成树之后又多算了一些,所有训练时间增加了,而测试时间两种都是从上向下走,时间一样。
2. 过拟合 / 欠拟合风险:
* 预剪枝:过拟合风险降低,欠拟合风险增加
* 后剪枝:过拟合风险降低,欠拟合风险降低
~ 预剪枝是发现降低就停止划分,如果后面出现精度增加的划分,在预剪枝中也被剪掉了,使得欠拟合增加。
3. 泛化能力:
~ 后剪枝的泛化能力通常优于预剪枝。