机器学习定义
让计算机具有像人一样的学习和思考能力的技术的总称。具体来说是从已知数据中获得规律,并利用规律对未知数据进行预测的技术
机器学习有三个分类:
1.有监督学习(SupervisedLearning):这一类的机器学习的训练需要标签,也就是答案。一个形象的例子就是我们通过不断地刷题,然后对答案,如此往复,不断提高自己的能力。
2.无监督学习(UnsupervisedLearning):这一类机器学习算法不需要标签就能完成训练。
3.强化学习(ReinforcementLearning):强化学习是通过自己不断地进行尝试,并根据环境中得到的反馈来提高自己,就类似于婴儿学习走路。
目前机器学习主要是通过有监督学习和无监督学习来实现的,而有监督学习和无监督学习它们的主要应用场景也不太一样
有监督学习:主要用于分类和回归
无监督学习:主要用于聚类和降维
误差分析
误差是指模型的预测值于真实值之间的差异,根据用来预测的数据的不同又有不同的分类
模型在训练集上的误差称为“训练误差”
模型在总体样本上的误差称为“泛化误差”
模型在测试集上的误差称为“测试误差”
偏差(bias)反映了模型在 样本上的期望输出与真实 标记之间的差距,即模型本身的精准度,反映的是模型本身的拟合能力。
方差(variance)反映了模 型在不同训练数据集下学 得的函数的输出与期望输出之间的误差,即模型的稳定性,反应的是模型的波动情况。
过拟合是指模型能很好地拟合训练样本,而无法很好地拟合测试样本的现象,从而导致泛化性能下降。为防止“过拟合”,可以选择减少参数、降低模型复杂度、正则化等
欠拟合是指模型还没有很好地训练出数据的一般规律,模型拟合程度不高的现象。为防止“欠拟合”,可以选择调整参数、增加迭代深度、换用更加复杂的模型等。
交叉验证
交叉验证就是将数据分为随机分成均匀的几份,然后从中选择一部分作为训练集,一部分作为测试集。比较常用的交叉验证方法是K折交叉验证法
K折交叉验证:将数据分成K份,选取K-1份作为训练数据,而剩下的一份作为测试集。通过这种方式进行多次训练。
进行交叉验证的目的是对模型进行评估,同时还能一定程度上减少过拟合,并且由于每次训练都重新打乱数据,这样可以获得更多的信息。
有监督学习
决策树
决策树是一种基于树结构进行决策的机器学习方法,决策树由三个部分构成:
根节点(root node)
内部节点(internal node)
叶节点(leaf node)
决策过程:自顶向下建立决策树,从根节点开始,按照待分类实例的属性值选择决策路径,直至叶节点,并将叶节点对应的类标作为决策结果。其中,基于贪心算法进行根节点和内部节点决策属性的选择,贪心算法目的是从节点对应的属性集合中搜索最优的属性
作为对应节点的决策属性。
决策树学习的终止条件
情形一:当节点对应的数据集属于同一类时
情形二:当属性集合为空集时或样本在所有属性上取值相同时
情形三:当节点对应的数据集为空时
决策树是通过不断地找出最佳划分点进行不断地分支,最终得到叶节点,因此最关键的地方就是它的决策指标,主要的决策指标有下面这三种:
信息增益(information gain)
增益率(gain ratio)
基尼系数(Gini index)
下面我会以信息增益为例,展示一下如何进行分支。
信息增益
要获得信息增益需要先知道信息熵,给定数据集D,其中第 k 类样本所占的比例为pk(k = 1, 2,…, N),则数据集D的信息熵计算公式为:
其中log一般以2为底。信息熵是用来度量不确定性的大小的,信息熵越大则表明不确定性越大。下面我们来举个例子方便理解。
我们来计算一下好瓜这个特征的信息熵。显然,好瓜这个特征只有两个属性,要么是好瓜要么不是。设p1为是好瓜的概率,设p2为不是好瓜的概率,通过上图我们可以很简单的计算出p1和p2。
则好瓜这个特征的信息熵就是
信息增益(information gain)
信息增益用于度量给定属性对于降低数据集类别不确定程度的贡献。给定离散属性a = {a1, a2, …, aV,},属性a对于数据集D的信息增益为:
通俗一点理解就是前面我们计算得出的”好瓜“这个特征的信息熵是在不知道其他任何信息的情况下得到的,而如果我们知道了某些信息,比如”敲声“,那么在知道了”敲声“这个特征的条件下,”好瓜“这个特征的信息熵就有可能会减小,而减小的这个量就称之为信息增益。
上面的公式可能不太好理解,没关系,通过下面的例子你就可以很容易明白究竟是怎么算的。
上面这张图是根据”敲声“这个特征的三个属性来重新排序的结果。我们前面说过,‘好瓜”信息增益是得知了某个条件后“好瓜”这个特征的信息熵的减小量,下面就来看一下在得知了“敲声这个信息以后的信息增益是多少。
首先,可以很容易的看到只有一个样本有”沉闷“这个属性,其编号为2,则记为
有两个样本有”清脆“这个属性,编号分别为7,8。有七个样本有”浊响“这个属性,编号分别为1,2,3,4,5,6,9,10.则将它们记为
现在计算一下在知道了这些属性的条件下,”好瓜“的信息熵是多少。
由于只有一个样本有”沉闷“这个属性,也就是说在”沉闷“这个属性的条件下”好瓜“只能有一种结果,从图中可以看到是”是“这个属性,因此在”沉闷“这个属性的条件下”是“出现的概率为100%,那么根据信息熵的计算公式可以求得熵为0,记为
再看一下”清脆“这个属性,从图中也可以看到,在”清脆“这个属性的条件下,”好瓜“这个特征的属性全为”否“,因此在”清脆“这个属性的条件下,”否“的概率为100%,所有熵也为0,记为
最后,在”清脆“这个属性的条件下,”好瓜“这个特征中”是“这个属性出现了5次,而”否“这个属性出现了两次,在”清脆“这个属性的条件下,”是“出现的概率为5/7,”否“出现的概率为2/7。则通过信息熵公式计算得熵为0.864,记为
因此,再知道了”敲声“这个条件下,”好瓜“的信息增益为:
上面就是在知道了”敲声“这个条件下,”好瓜“的信息增益,接着我们可以计算在”色泽“这个条件下”好瓜“的信息增益,通过比较”敲声“和”色泽“则两者所带来的信息增益的大小就可以确定由哪个特征作为分支点。
随机森林
集成学习(Ensemblelearning)
组合多个弱监督模型以期得到一个更好更全面的强监督模型,集成学 习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分 类器也可以将错误纠正回来。
随机森林用随机的方式建立起一棵棵决策树,然后由这些决策树组成一个森林,其中每棵决策树之间没有关联,当有一个新的样本输入时,就让每棵树独立的做出判断,按照多数原则决定该样本的分类 结果。
随机森林构建的基本步骤
随机有放回地从训练集中的抽取m个训练样本,训练集 D
从 D 对应的特征属性中随机选择部分特征,构建决策树
重复上述步骤构建多个决策树
预测步骤
向建立好的随机森林中输入一个新样本
随机森林中的每棵决策树都独立的做出判断
将得到票数最多的分类结果作为该样本最终的类别
朴素贝叶斯模型
贝叶斯决策论
先验概率:根据以往经验和分析得到的概率。比如抛硬币的正反面的概率,根据我们的经验,一般都会认为正反面的概率都是0.5。
后验概率:指根据已经发生的事来推断导致这件事发生的各个原因的概率。
在这里我们举一个简单的例子以助于理解,比如小明早上喝了一杯凉开水,那么他因为喝凉开水而导致中午拉肚子的概率就是先验概率,而如果小明中午确实拉肚子了,那么在他中午拉肚子的条件下,是由于早上喝凉开水造成的概率就是后验概率。总结起来就是,先验概率,是从”因“推”果“,而后验概率是根据”果“来推”因“。
下面的公式是贝叶斯公式
其中Y为我们的样本的标签,而X就是特征,则P(Y|X)就是后验概率。这里可能不太好理解,下面举一个例子。如下图所示,Y表示”好瓜“,X表示”敲声“和”色泽“。为什么说P(Y|X)是后验概率呢?我们可以这样理解,因为它是好瓜,所以它有这样的”敲声“和”色泽“。
我们就可以得到
注意,在这里我们假设”敲声“和”色泽“是相互独立的,这也是朴素贝叶斯这个名字的由来。虽然在真实的情况下它们之间可能并不是独立的,但是为了方便我们计算和理解,我们舍弃掉一部分的精度来使这个计算能进行下去。显然,现实中我们可能会遇到有很多特征的数据,而如果这些特征又都不是相互独立的话,那么我们将无法或者说很难进行计算。
上面我们已经列出来求解”好瓜“的后验概率公式,下面我们只需要求解条件类别概率P(敲声|好瓜)P(色泽|好瓜) ,P(好瓜),以及联合概率P(敲声)P(色泽)就可以求得”好瓜“的后验概率了。
由于P(敲声)P(色泽)也就是P(敲声,色泽)是固定的,既然分母是固定的那么发呢书的大小就由分子确定,所以,我们可以不用求P(敲声,色泽)。这也是朴素贝叶斯”朴素“的一个原因,能简单尽量简单。
现在先求P(敲声|好瓜):
P(色泽|好瓜):
P(好瓜):
计算完P(敲声|好瓜)、P(色泽|好瓜)、P(好瓜)之后就可以通过这些数据对西瓜进行分类了。假设我们现在有一个敲声”浊响“,色泽”青绿“的西瓜,那么它是不是好瓜呢?
显然P(是|浊响,青绿)的概率大于P(否|浊响,青绿)的概率,因此这个瓜是好瓜。
不过你们可能注意到了一点P(清脆|是)、P(沉闷|否)和P(乌黑|否)的概率都是0,这显然不合理,虽然这些情况出现的可能性很小,但是概率为0的话就太极端。为了解决这个问题,我们引入了拉普拉斯修正(Laplacian correction)
拉普拉斯修正是一种用于平滑分类数据的技术。引入拉普拉斯平滑法来解决零概率问题。
具体操作就是在分子部分加1,而在分母部分加上该特征的属性数目,P(敲声|好瓜)的平滑处理过程如下图所示:
可以看到,分子部分都加上了1,而分母部分加3是因为”敲声“这个特征有”浊响“、”沉闷“、”清脆“这三个属性。P(色泽|好瓜)和P(好瓜)的平滑处理跟上面的一样,这里不再赘述。重新把这三个值求好以后,就可以和前面判断一个西瓜是不是好瓜的例子一样进行判别了。
无监督学习
数据集没有标记信息(自学)
聚类:我们可以使用无监督学习来预测各样本之间的关联度,把关联度大的样本划为同一类,关联度小的样本划为不同类,这便是 “聚类”
降维:我们也可以使用无监督学习处理数据,把维度较高、计算复杂的数据,转化为维度低、易处理、且蕴含的信息不丢失或较少丢失的数据,这便是“降维”
聚类
聚类的目的是将数据分成多个类别,在同一个类内,对象(实体)之间具 有较高的相似性,在不同类内,对象之间具有较大的差异。
对一批没有类别标签的样本集,按照样本之间的相似程度分类,相似的归为一类,不相似的归为其它类。这种分类称为聚类分析,也 称为无监督分类
常见方法有K-Means聚类、均值漂移聚类、基于密度的聚类等
K-means聚类是一个反复迭代的过程,算法分为四个步骤:
1.选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;
2.对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离, 按距离最近的准则将它们分到距离它们最近的聚类中心(最相似) 所对应的类;
3.更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
4.判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回2。
降维
降维的目的就是将原始样本数据的维度𝑑降低到一个更小的数𝑚,且尽量使得样本蕴含信息量损失最小,或还原数据时产生的误差最小。比如主成分分析法(PCA)。
降维的优势:
数据在低维下更容易处理、更容易使用;
相关特征,特别是重要特征更能在数据中明确的显示出来;
如果只有二维或者三维的话,能够进行可视化展示;
去除数据噪声,降低算法开销等。
参考资料
机器学习基础
周志华《机器学习》