更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
基尼指数(gini coefficient)表明了模型的不纯度,基尼指数越小,则不纯度越低;基尼指数越大,则不纯度越高,这和信息增益比是相反的。算法
假设一个训练集有\(K\)个类别,样本属于第\(k\)个类别的几率为\(p_k\),则它的基尼指数为
\[ G(p) = \sum_{k=1}^K p_k (1-p_k) = 1 - \sum_{k=1}^K p_k^2 \]
若是是二分类问题,其中一个分类的几率为\(p\),则它的基尼指数为
\[ G(p) = 2 p(1-p) \]
对于某一个训练集\(D\),假设训练集有\(K\)个类别,而且第\(k\)个类别有\(C_k\)个样本,则\(D\)的基尼指数为
\[ G(D) = 1 - \sum_{k=1}^K ({\frac {|C_k|} {|D|}})^2 \]
对于某一训练集\(D\),若是根据特征\(T\)的某个特征值是否等于\(t\)把\(D\)分红两个子集\(D_1\)和\(D_2\)
\[ D_1 = \{(x,y)\in{D}|A(x)=t\},\quad D_2 = D-D_1 \]
则\(D\)的基尼指数为
\[ G(D,A) = ({\frac {|D_1|} {|D|}})G(D_1) + ({\frac {|D_2|} {|D|}})G(D_2) \]
基尼指数\(G(D)\)表示\(D\)的不肯定性,基尼指数\(G(D,A)\)表示通过\(T=t\)分割后\(D\)的不肯定性。基尼指数越大,样本集合的不肯定性也就越大,不纯度越高。数据结构