机器学习算法中常用的各种metrics分析

阅读更多

    作者在学习机器学习领域的各类算法时,就发现很多闪着智慧光点的各种metrics(度量)。其往往才是一个算法的灵魂,它可以是某种性能的度量,相似度的度量,优化目标的度量等等。作者在此总结学习到的各种度量衡,一者作为一个总结,供自己不时翻阅,二者抛砖引玉。

    1. entropy:(熵)反映一个概率分布的不确定性,当我们采用概率分布对事件进行建模时,熵可以作为该事件包含的信息量的度量,熵越大,信息量越少;反之,熵越小,信息量越大。有时候也用熵来度量一个概率分布(事件)的,不确定度和置信度。当我们希望某个事件的不确定度尽量小时,可以把该事件的熵作为优化的目标函数。

    2. 以下三个度量在决策树算法中,用于确定分支。

        information gain:信息量增量,反映的是分支后的信息量,相对于分支前的信息量的增加量。很显然,该度量采用了熵来衡量一个概率分布的信息量。选择信息量增量最大的特征,进行分支,其目标就是使得分支后的子树上的各样本的不确定度降低,即各子树样本类别趋向于单一化,被用于ID3算法中。在处理各属性具有不同取值数量的分类问题时,Information Gain偏向于选取取值数量更多的属性。C4.5算法引入了信息增益率。

        Gini impurity:反映的是,若根据各标签在样本中的分布,随机对元素打标签后,打标签错误的概率。当样本集中,所有样本的标签都相同时,该随机打标签错误的概率为0;若所有标签的样本均匀分布时,该随机打标签错误的概率最大。可见,该值的单调性和Information Gain相同,被用于CART算法中。

        variance reduction被CART算法引入,应用于目标变量为连续值的情况。不需要计算目标变量的均值,直接估计样本集中,目标变量的方差。当样本集中,所有样本目标变量的值都相同时,该方差为0;所有样本目标变量的值趋于均匀分布时,该方差的最大。可见该值的单调性和Information Gain、Gini Impurity相同,其优点是应用于目标变量连续的情况时,不需要对目标变量进行离散化。

    3. 词频(TF):用于构建文本特征,可以采用一个单词在文档中出现的频次f表示,也可以采用0/1表示(1表示在该文档中出现过,0表示在该文档中没有出现),也可以对频次f取对数log(f+1)。

        逆文档频率(IDF):用单词在所有文档中出现的频繁程度,来反映该单词携带的信息量,假设所有文档数量为N,单词在n个文档中出现过,那么IDF可以取为log(N/n),或者做一下平滑log(1+N/n)。

        朴素贝叶斯算法的思想分析:说到TF-IDF那就自然离不开朴素贝叶斯算法。朴素贝叶斯算法的基本理论基础是贝叶斯公式,该公式告诉我们可以通过先验概率来估计后验概率,通俗的理解就是现在我们知道一堆特征,要预测某一事件发生的概率,这个问题可以通过计算我们之前采集的样本中,在该事件发生时,该特征出现的概率来解决,这貌似就是将一件完全不知道从何下手的事情,瞬间转化成之前已知的事情。其基本假设是用于支持分类标签的所有特征对分类标签的影响是相互独立的,也就是说所有特征对最终分类标签的影响可以分解为单个特征对最终分类标签的影响。这也符合通常我们求解问题,喜欢将问题分解的思路。该假设也是朴素贝叶斯算法朴素二字的来由。

        在处理文档分类问题时,可以将单词在文档中的分布看成多项式分布,也可以看成伯努利(0/1)分布。多项式分布,只考虑文档中出现的单词,及其出现的次数。伯努利分布考虑文档集中所有的单词,根据其是否出现在文档中,计算文档属于某个标签的后验概率。在处理样本分布不太均匀的多标签分类问题时,还有一个思想是去考虑计算文档不属于某个标签的后验概率,这样可以减弱样本分布不均衡对朴素贝叶斯算法的影响,该方法也称为互补朴素贝叶斯算法。多项式朴素贝叶斯和伯努利朴素贝叶斯在spark的MLlib中有实现,多项式朴素贝叶斯和互补朴素贝叶斯在mahout中有实现。需要说明的是,mahout实现中计算TF-IDF的方式和上述略有差异,其计算公式为: d=sqrt(f)*(1+log(N/(n+1)))。其中f是单词在文档中出现的次数,这里TF采用了开根号的方式,IDF采用了平滑策略。

    【后续】

转载于:https://my.oschina.net/jhone/blog/505788

你可能感兴趣的:(机器学习算法中常用的各种metrics分析)