久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

決策樹:最清晰明了的分類模型

 生信修煉手冊 2021-02-24
決策樹屬于監(jiān)督學(xué)習(xí)算法的一種,,根據(jù)原始輸入數(shù)據(jù)中的特征,,構(gòu)建一個(gè)樹狀模型來進(jìn)行分類,。比如探究早晨是否出去打網(wǎng)球的例子,,輸入數(shù)據(jù)如下

一共有14個(gè)樣本,其中9個(gè)早上都出去打球,,5個(gè)早上沒出去打球,。在原始數(shù)據(jù)中,統(tǒng)計(jì)了每個(gè)早上的天氣,,濕度,,是否有風(fēng)這3個(gè)條件

利用上述數(shù)據(jù),構(gòu)建好的決策樹模型如下

輸入數(shù)據(jù)的每一個(gè)特征作為決策樹中的一個(gè)節(jié)點(diǎn),,根據(jù)其取值的不同,,劃分不同的分支,根據(jù)各個(gè)特征的取值,,按照這個(gè)樹狀結(jié)構(gòu)就可以解釋一個(gè)樣本的分類情況,。

對于決策樹模型,其解釋性非常強(qiáng),,可以看做是一連串的if-else條件,,根據(jù)該條件就可以輕松的預(yù)測一個(gè)新的樣本點(diǎn)。決策樹的輸入和輸出都比較直觀,,核心就在于構(gòu)建合適的分類樹,。

在構(gòu)建決策樹的過程中,  對于一個(gè)原始的特征,根據(jù)其取值分割成不同的分支,,分割的過程其實(shí)是一個(gè)取子集的過程,。以outlook為例,分割前是14個(gè)樣本,,9個(gè)play,,5個(gè)no play; 根據(jù)3種取值分割后,sunny有2個(gè)play, 3個(gè)no play, overcast有4個(gè)play, rain有3個(gè)play, 2個(gè)no paly,。

為了量化特征以及分割前后的變化,,引入了以下概念

1. 熵

熵是從信息論中引入的概念,,用來衡量一個(gè)事物的混亂狀態(tài),熵越大,,越無序,,具體的計(jì)算公式如下

p代表的是概率,上述示例數(shù)據(jù)為例共14個(gè)樣本,,其中9個(gè)play, 4個(gè)no play, 對應(yīng)的熵如下

>>> -(np.log2(9/14) * (9/14) + np.log2(5/14) * (5/14))
0.9402859586706309
種方式計(jì)算出來的熵稱之為經(jīng)驗(yàn)熵,,直接用采樣數(shù)據(jù)中的頻數(shù)分布作為了總體的概率分布。

和條件概率這個(gè)概念類似,,也要條件熵的概念,,即再特征X下數(shù)據(jù)集的熵,公式如下

比如天氣這個(gè)特征有3個(gè)取值,,則在該特征下數(shù)據(jù)集的條件熵為
>>> - (5/14) * (np.log2(2/5) * (2/5) + np.log2(3/5) * (3/5)) -  (5/14) * (np.log2(3/5) * (3/5) + np.log2(2/5) * (2/5))
0.6935361388961918

在取值為overcast時(shí),,出現(xiàn)了no play為0的情況,無法計(jì)算log值,,此時(shí)直接將其熵定義為0,, 所以上述公式只考慮了取值為sunny和rain的情況。

2. 信息增益

在決策樹中,,我們根據(jù)特征的取值將原始的特征拆分成了不同的分支,,信息增益用來衡量拆分前后復(fù)雜度的變化,具體的計(jì)算公式如下

用總體的經(jīng)驗(yàn)熵減去某一特征的條件熵,,以天氣這個(gè)特征為例,,計(jì)算過程如下
>>> -(np.log2(9/14) * (9/14) + np.log2(5/14) * (5/14)) + (5/14) * (np.log2(2/5) * (2/5) + np.log2(3/5) * (3/5)) + (5/14) * (np.log2(3/5) * (3/5) + np.log2(2/5) * (2/5))
0.2467498197744391

信息增益衡量的是用某個(gè)特征拆分前后的復(fù)雜度變化,理想的拆分情況是復(fù)雜度降低的越多,,對應(yīng)的信息增益值越大,,所以對于輸入的多個(gè)特征,一般選擇信息增益大的特征進(jìn)行拆分,。

3. 信息增益率

也叫做信息增益比,, 具體的計(jì)算公式如下

可以看到,相比信息增益,,信息增益比用總體的經(jīng)驗(yàn)熵進(jìn)行了矯正,,將數(shù)據(jù)轉(zhuǎn)換到0到1的范圍,從而可以直接在不同特征之間進(jìn)行比較,。

決策樹的構(gòu)建,,是一個(gè)遞歸的過程,從根節(jié)點(diǎn)開始,,不斷選擇信息增益大的特征作為節(jié)點(diǎn),,依次進(jìn)行拆分,直到信息增益很小或者沒有特征可以選擇為止?;陟啬P偷男畔⒃鲆嫦群蟪霈F(xiàn)了兩種算法,。

首先是ID3算法,只針對離散型的特征,,通過信息增益來選擇特征,;接下來是C4.5算法,對ID3進(jìn)行了改進(jìn),,選擇了信息增益比來選擇特征, 同時(shí)支持處理連續(xù)型的特征,,對特征值排序之后,迭代選取閾值,, 大于閾值為一類,,小于閾值為另一類,從而將連續(xù)性的特征轉(zhuǎn)換為離散型,。

除了基于熵的信息增益,,還有一種CART算法,該算法擴(kuò)展了傳統(tǒng)的決策樹,,既可以進(jìn)行回歸,也可以進(jìn)行分類,。在處理回歸問題時(shí),,采用最小二乘法的思想,即均方誤差最小來選取特征,;在處理分類問題時(shí),,采用基尼指數(shù)來表征樣本的混亂程度?;嵯禂?shù)的計(jì)算公式如下

相比熵而言,,基尼系數(shù)沒有對數(shù)運(yùn)算,計(jì)算更快捷,。

上述3種算法的比較如下

對于決策樹而言,,常見的問題是過擬合。此時(shí),,就需要通過剪枝來優(yōu)化決策樹,,所謂剪枝,就是去除決策樹中的某些分支,。根據(jù)生成決策樹和剪枝的順序,,可以分為以下兩種策略

1. 預(yù)剪枝,pre-pruning

2. 后剪枝,,post-pruning

在監(jiān)督學(xué)習(xí)中,,數(shù)據(jù)集會分為訓(xùn)練集和測試集兩部分,在預(yù)剪枝中,訓(xùn)練集用來決定劃分所用的特征,,測試集用來決定該特征是否可以用來劃分?jǐn)?shù)據(jù),;在后剪枝中,先基于訓(xùn)練集生成一顆決策樹,,然后用測試集的數(shù)據(jù)判斷某個(gè)決策樹中的節(jié)點(diǎn)是否需要去除,。

在scikit-learn中,可以方便的構(gòu)建決策樹,,用法如下

>>> from sklearn.datasets import load_iris
>>> from sklearn import tree
>>> X, y = load_iris(return_X_y=True)
>>> clf = tree.DecisionTreeClassifier()
>>> clf = clf.fit(X, y)
>>> import matplotlib.pyplot as plt
>>> plt.figure()
>>> tree.plot_tree(clf, filled=True)
>>> plt.show()

輸出結(jié)果如下

默認(rèn)使用的就是CART算法,,同時(shí)通過可視化決策樹,可以讓我們清晰的了解決策的過程,。

·end·

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多