2_決定木機械学習ノート

@

2.1はじめに

クラシック決定木アルゴリズムの機械学習アルゴリズム、アルゴリズムの非常に一般的なタイプが使用されているが、ランダムフォレストアンサンブル学習アルゴリズムは決定木に基づいています。決定木、彼はC4.5アルゴリズムを上げた後、クインラン(クインラン)は、1986年に前方ID3のバージョンの始まりを入れています。その後、それはクインランに基づいCARTアルゴリズムは、この論文は、3つのアルゴリズムの主なアイデアを紹介していることが示唆されました。

2.2情報理論

決定木は、if-他のシリーズのコレクションとしてすることができます。たとえば、私たちは常に場合は、他のプログラムを書くとき、複数と組み合わせて使用​​されるが、条件ならば行うための最も適切なを備えていることだろうか?最も差別によって特徴づけされていますか?これは、実行する決定木です。クインランは訪問スタンフォードチューリングのアシスタントD.Michie選択科目の授業中に1978年に兄と呼ばれ、大規模な操作が完了すると、クインランは、決定木の前身である情報エントロピーを、使用して解決するために、前方のアイデアを置きます。

私たちは、最初の情報理論における情報エントロピーを導入し、それが別の創業者ダニエル・シャノンがあります。情報理論では、エントロピー(エントロピー)は、物事の不確実性を測定するために使用されます。出来事の確率と、確率についての不確実性は、いわゆる\(P_Iが\)より大きな不確実性、小さいです。ここでは簡単な例は次のとおりです。降水日の天気予報確率は雨におそらく明日、晴れ、曇り...ので、多くの人々のための余地を残して、天候のすべての種類、上だと思うで10%、ですが、天気予報であれば降水量の99%の確率で、傘のように、私はそれについて考えていない、明日は雨になるかを決定するために基本的に可能です。この例手段は、情報量が少ない確率イベント以上に含まれます。情報は、負の対数であることができる( - \ログP_I \)\次のように画像であることが記載:
ここに画像を挿入説明
分散離散ランダム変数について\(X- \)の可能な値の複数の値、それは各エントロピーを意味値は情報の加重平均量に含まれる、次の式は、量子化、エントロピーを表す:
\ [H(X)= - \ sum_ = {I} 1 ^ N-P_I \ログP_I \。]
Xの値は、エントロピーとは無関係であるので唯一異なる値の確率は、したがって、式は次のように書くことができる:
\ [H(P)= - \ sum_ = {I} 1 ^ N-P_IはP_I \ログ\]
前記\(X- \)を表しランダムイベントを、\(P_I \) Xの最初のための\(I \)値の発生確率、もし(P = 0 \)\定義\(0 \ 0 = 0 \ログ)ランダム変数の各値の発生の確率は、最大エントロピーのこの時点で、等しい場合。ベルヌーイ分布に関しては2つのだけの値を持っています
| X- | 0 | 1 |
| - | - | - |
| \(P_I \) | \(P \) | \(1-P \) |
、情報エントロピー:
\ [H(P)= -p \ P-ログ( 1-P)\ログ(1
-p)\] これは馴染みクロスエントロピー(クロスエントロピー)は、のような画像は、次のとおり
ここに画像を挿入説明
ように、P = 0.5最大エントロピーであること\(\ IOG2 \ )この結論は、従って、Xの離散的な複数の値をとる場合に拡張することができる:
\ [0 \ leqslant H(P)\ leqslant \ N- \ログ]を
複数のランダム変数について\(X、Y \) 結合エントロピーがあります、\
[H(X、Y)= - \ sum_ {I} 1 ^ = NP(X_I、Y_I)\ログP(X_I、Y_I)\]
この条件付きエントロピー確率が使用されていることが注目されるに基づきます同時確率:
| - {I = 1} \ [H(X-Y)= \ sum_ ^ NP(X_I、Y_I)\ログP(X_I | Y_I)= \ sum_ {J = 1} ^ NP(y_j)H( X | Y_I)\]
確率が使用されるデータの頻度、エントロピーと条件付きエントロピーの経験と呼ばれたエントロピーと条件付きエントロピーの経験である場合。ゲイン情報(情報ゲイン)が経験として定義され、経験的エントロピー条件付きエントロピーの差である:
\ [G(X、Y)= H(X)-H(X | Y)\]
すなわち、確率変数Xはなかっ程度を決定する(\ H(X))を\そして、Yは、この状態で、Xは、発生の不確実性をに低減され、発生し\(H(X | \ Y)) 不確実性の程度を低減するための情報の数を増やし、ある情報ゲインです。それは次のように計算されます。
ここに画像を挿入説明

2.3機能の選択

バック各地の決定木、ランダム変数としてトレーニングセットを分割する\(D \)ランダム変数として特徴付けられ、\(A \)、\ (H(D)\) 分類の不確定性を表す\(H (D |)\)新しい分類の不確定性にDに対するAの付加的な特徴を示し、違いは、D低減不確実性は、それがあれば、ことは明らかであるような程度によって特徴付けられる情報を得ることです機能は、その不確実性の度合いがより減少していること、これは良い機能であることを示しています。
簡単な例は、リチウム(Liハング「統計学習方法」から)、以下の通りである:
データ図:
ここに画像を挿入説明
次のように特徴選択のプロセスです。

見つかった人は、同じ条件の下で、特性情報の値よりも多くの機能の値があまり大きなゲインを見つけました。この問題を解決するために、それらは兄クインラン情報ゲイン率の概念を提案した:
\ [g_R(D、A)= \ {FRAC G(D、A)}、{H(D)} \]
ここに画像を挿入説明
ここに画像を挿入説明

2.4 ID3及びC4.5

ID3算法的基本思路就是:从根节点开始选择信息增益最大的特征,根据该特征的不同取值建立不同的子节点,每个子节点递归地选择特征,直到没有特征或者信息增益小于某个阈值为止。
算法过程为:
输入:信息增益的阈值\(\epsilon\),训练的数据集\(D=\{ (x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}\),特征集\(A=\{ A_1,A_2,...,A_n\}\), 每个特征的取值有\(i\)
输出:决策树T
1) 判断\(D\)中的所有样本是否为同一类,即所有训练数据的标签是否为同一个。如果是,则T为单结点树,这时返回T
2) 判断特征是否为空,如果是则返回单节点树T,把训练集\(D\)中实例树最大的类作为该结点的类标记。否则计算\(A\)中每个特征的信息增益,选择信息增益最大的特征\(A_g\)
3) 判断刚刚计算的最大信息增益\(g(D,A_g)\)是否小于阈值\(\epsilon\),如果是,则把T作为单结点树,把\(D\)中实例数最多的类别作为该结点的类标记
4) 否则,按照\(A_g\)的不同取值把\(D\)划分为不同的子集\(D_i\),把\(D_i\)中实例数最多的类别作为该结点的类标记,返回T
5) 对于所有子节点,令\(D=D_i\)\(A=A-{A_g}\)地洞调用1-4

C4.5方法与ID3方法相同,在生成树的过程中用信息增益比代替信息增益。


2.5 决策树的剪枝

如果决策树的分支过多,分类过细则会造成过拟合现象,模型在训练数据上表现很好,但在测试时则表现很差。这时需要主动把分支结点合并到父结点中,达到裁剪决策树的目的,从而降低过拟合。剪枝分为“预剪枝”和“后剪枝”。

预剪枝
所谓“预剪枝”,就是在生成决策树时就用一定的方法控制子树的生成,一种可行的方法,就是用验证集数据,当划分的子树在验证集上仍能保持较好的准确率,则按照特征的不同取值进行划分,否则停止划分。
后剪枝
对于后剪枝,就是先生成一个完整的决策树,接着定义损失函数,按照使得损失函数最小的方法合并叶结点到父结点。

下边介绍一种可行的后剪枝方法:
我们知道,一颗理想的决策树中,所有同一类的训练样本都落入到同一个叶子节点中,但现实 中每个叶子节点中总有错误的分类,假设树\(T\)中有\(|T|\)个子叶子节点,其中第\(t\)个结点中有\(N_t\)个训练样本,由于存在错误的分类,这些样本点中第\(k\)类有\(N_{tk}\)个,\(k=1,2,3,...K\),可以用经验熵来衡量这种分类损失,即:
\[H_t(T) = - \sum _{k=1}^{K} \frac{N_{tk}}{N_t} \log \frac{N_{tk}}{N_t} \]
因为前边介绍过,经验熵的取值范围为:
\[0 \leqslant H_t(T) \leqslant \log K\]
如果叶子节点没有分类错误,则\(H_t(T) =0\)

这是每个叶子节点的损失,而对于整个树的损失则可以表示为叶子节点损失的加权平均,权重就是叶子节点中训练样本(样本点)的个数,所以有:
\[C_a(T) = \sum_{t=1}^{|T|} N_t H_t(T)\]
在之前LR中讲正则项时有提到,权重过大会造成过拟合,而在决策树中,子节点的个数太多同样会造成过拟合,因此我们需要加一个正则项来约束子节点的个数\(|T|\),因此损失函数如下:
\[C_a(T) = \sum_{t=1}^{|T|} N_t H_t(T) + \alpha |T|\]
假设一个叶结点回缩到父结点之前与之后整体树的损失为\(C_a(T_B)\)\(C_a(T_A)\),如果\(C_a(T_B) \leqslant C_a(T_A)\),则进行剪枝。

2.6 CART

CART的全称是classification and regression tree. 由Breiman等人在1984年提出,是应用广泛的决策树学习方法。与ID3和C4.5不同的是,CART构建的是二叉树,我们知道在数据结构中,二叉树有很多优良的性质!sklearn内部默认的决策树算法也是CART。下边分开两部分介绍:

2.6.1 CART分类树

在ID3中,使用信息增益选择特征,在C4.5中使用信息增益比来选择特征,在MART中则使用基尼系数(Gini)来代替信息增益。信息熵由于需要大量的对数运算,计算速度偏慢,而基尼系数则只需要做乘法和加减法运算,其定义如下:
\[Gini(p) = \sum_{k=1}^{K} p_k(1-p_k) = 1- \sum_{k=1}^{K} p_k^2\]
其中\(p_k\)表示训练样本属于第\(k\)类的概率。特别地,在二分类问题中,样本点属于第一类的概率为\(p\),则基尼系数为:
\[Gini(p) = 2p(1-p)\]
如果训练样本集合为\(D\),则基尼系数为:
\[Gini(D) = 1- \sum_{k=1}^{K} \left ( \frac{|C_k|}{|D|} \right)^2\]
\(C_k\)表示属于第\(k\)类的样本子集,如果根据特征A的取值把样本集合\(D\)分成\(D_1\)\(D_2\)两部分,则在特征A的条件下,训练样本集合\(D\)的基尼系数为:
\[Gini(D,A) = \frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2)\]
也就是两个子集基尼系数的期望(加权平均)

与ID3和C4.5不同,CART分类算法建立的是二叉决策树,比如特征A有三种特征\(A_1,A_2,A_3\)三种特征,CART会把特征分为\(\{A_1\}\)\(\{A_2,A_3\}\),\(\{A_2\}\)\(\{A_1,A_3\}\)以及\(\{A_3\}\)\(\{A_1,A_2\}\)三种,分别计算着三种组合的基尼系数,对于未分开的特征,后边还有机会做计算。

分类算法的具体流程为:
输入:输入训练集\(D\),基尼系数阈值,样本个数阈值
输出:CART决策树T
1) 对于当前节点的数据集D,如果样本个数小于阈值,返回T
2) 计算D的基尼系数,如果基尼系数小于阈值,返回T
3) 对于各个特征A和特征的各个取值a,把D划分成\(D_1\)\(D_2\)两部分,根据上述例子计算各个特征各个取值的基尼系数
4) 选择基尼系数最小的特征A和对应的特征值a,根据是否取a把D分成\(D_1\)\(D_2\)两个子树。
5) 递归调用(1)-(4)
仍是上述例子,构建的CART决策树为:
ここに画像を挿入説明

2.6.2 CART回归树

对于回归模型,同样是测试每个特征的每个取值。由于要拟合的函数\(f(x)\)是连续的,所以考虑输入数据集的划分,用平方误差表示回归树对训练数据的误差:
\[\sum_{x_i \in R_m} (y_i-f(x_i))^2\]
目标就是如何划分训练数据集\(D\),找到划分点\(s\),使得划分后的两个子集\(D_1\)\(D_2\)的误差最小,同时他们的平方误差和也最小。注意,我们训练集\(D=\{(x^{(1)},y^{(1)}),x^{(2)},y^{(2)},...x^{(m)},y^{(m)}\}\)其中\(x^{(1)}<x^{(2)}<...<x^{(m)}\)我们要找的划分点\(s\)是其中的第\(j\)个变量,因此目标函数可以表示为:
\[\min_{A,s} \left[ \min_{c1} \sum_{x^{(i)} \in D_1(A,s)} (y^{(i)}-c_1)^2 + \min_{c1} \sum_{x^{(i)} \in D_2(A,s)} (y^{(i)}-c_2)^2\right]\]
其中\(c_1,c_2\)分别表示\(D_1,D_2\)中所有\(Y ^ {(I) } \) を意味します。予測すると、ツリーの平均出力への回帰はリーフノードです。同様の分類ツリーで確立ツリープロセス。

2.6.3 CART剪定

戦略をプルーニングすることは2.5の導入に似ていますが、選択はジニ係数の機能の喪失です。

おすすめ

転載: www.cnblogs.com/cuiyirui/p/11920674.html