機器學習總結(二) 決策樹

2021-10-09 16:44:18 字數 3440 閱讀 5456

基本概念︰訓練集,測試集,特徵值,監督學習,非監督學習,半監督學習,分類,回歸

1.1訓練集(training set/data)/訓練樣例(training examples):用來進行訓練,也就是產生模型或者演算法的資料集。

1.2測試集(testing set/data)/測試樣例(testing examples):用來專門進行測試已經學習好的模型或者演算法的資料集。

乙個運來訓練,乙個用來學習二者不衝突。

1.3特徵向量(features/feature vector) :屬性的集合,通常用乙個向量來表示, 附屬於乙個例項,例子中的天氣,溫度,濕度,風力,水溫為屬性。

1.4標記(label): c(x)例項類別的標記,即最後**的結果y,例子中為,最後是否運動,1為是,0為否。

同時:1為是也叫正例;0為否也叫返例。

1.5分類(classification):目標標記為類別型資料(category);結果為是否,結果只有是或否

1.6回歸(regression):目標標記為連續性數值(continuous numeric value);例如房價**,**是數值型。

例:研究腫瘤良性還是惡性取決於尺寸和顏色的關係。這是乙個分類問題。

特徵值:腫瘤尺寸,顏色

標記:良性/惡性

1.7三個學習

有監督學習(supervised learning):訓練集有類別標記(class label);訓練集都知道最後得結果,例訓練集裡面的例子都知道腫瘤是良性還是惡性。

無監智學習(unsupervised learning):無類別標記(class label);訓練集不知道最後結果,即不知道腫瘤是什麼性質。

半監督學習(semi-supervised learning):有類別標記的訓練集+無標記的訓練集。

1.8機器學習步驟框架

把資料拆分為訓練集和測試集

用訓|練集和訓練集的特徵向量來訓練演算法

用學習來的演算法運用在測試集上來評估演算法(可能要設計到調整引數(parametertuning))用來驗證集(validation set)

例:總共110天,100天是訓練,10天用來驗證。

機器學習中分類和**演算法的評估∶

準確率;速度;強壯性(有一些噪音或數值缺失時能否繼續執行);可規模性(資料變成打的資料集時能否繼續執行);可解釋性

2.1什麼是決策樹

決策樹是乙個類似於流程圖的樹結構∶

其中,每個內部結點表示在乙個屬性上的測試,每個分支代表乙個屬性輸出,而每個樹葉結點代表類或類分布。樹的最頂層是根結點。如下圖

構造決策樹的基本演算法

如下圖:判斷是否會買電腦

列出決策樹

2.2資訊熵(information entropy):

一條資訊的資訊量大小和它的不確定性有直接的關係,要搞清楚一件非常非常不確定的事情,或者是我們一無所知的事情,需要了解大量資訊==>資訊量的度量就等於不確定性的多少。

用位元(bit)來衡量資訊的多少,計算資訊熵公式如下:

p(x)為事件發生的概率,變數的不確定性越大,熵的值越大。

2.3決策樹歸納演算法(id3)

重點:選擇屬性判斷的節點:即該把那個屬性放到根節點。

資訊增益量(information gain) : gain(a) = info(d) - lnfor_a(d),通過a來作為節點分類獲取了多少資訊,gain(a)為a屬性的增益量=沒有a屬性的原始增益量-加上a屬性後的增益量。d為資料集。

資訊增益量越大,節點純度越高,越適合做根節點。

總共有14個例子,no是5個,9個是yes,

計算原始資料集d的資訊熵:根據上面資訊熵計算公式,買電腦佔比例9\14,不買電腦佔比例5\14,兩個情況帶入公式相加的:

以年齡為例,計算加上年齡的資訊熵:

14人中按年齡分為三類:youth有5個,senior有5個,middle_aged有4個,所以先計算他們各自在14人中所佔比例,再乘以他們的資訊熵(這裡的資訊熵是三個年齡段的資訊上計算)

資訊量gain(age)計算:

依次計算其他的資訊量:

因為年齡的資訊增益量最大,所以選擇age作為根節點。

下乙個節點依舊重複計算

總結:數是以代表訓練樣本的單個節點開始的(步驟1)。

如果樣本都在同乙個類,則該結點成為樹葉,並用該類標號(步驟2和3),此類少見。

否則,演算法使用稱為資訊增益的基於熵的度量作為後發資訊,選擇能夠最好地將樣本分類的屬性(步驟6) 。該屬性成為該結點的「測試」或"判定"屬性(步驟7) 。

所有屬性都是分類的,是離散的,若是連續屬性必須進行離散化。

對測試屬性的每個已知的值,建立乙個分枝, 並據此劃分樣本(步驟8-10)。

演算法使用同樣的過程,遞迴地形成每個劃分,上的樣本判定樹。一旦乙個屬性出現在乙個結點上,就不必該結點的任何後代上考慮它(步驟13) 。

遞迴劃分步驟僅當下列條件之一成立停止:

a.給定結點的所有樣本屬於同一類(步驟2和3)

b.沒有剩餘屬性可以用來進一步劃分樣本(步驟4)。在此情況下,使用多數表決(步驟5)。

3.1學習的庫

使用python裡面的scikit-learn庫。

pip install scikit-learn

機器學習(二) 決策樹

決策樹是用於分類的一種機器學習演算法。其最大的特點就是簡單,直觀.由於資料來自於之前的筆記。原例子的出處找不到,乾脆就手繪算了 xd。其中如果資料不是離散值,要先處理成離散值再進行決策樹的計算。圖1 用乙個例子來講吧。如上圖,現在是有14條資料都從調研中得到,其中是研究是否買電腦的資料,rid是列號...

機器學習二 決策樹學習

決策樹學習 從今天開始,堅持每天學習乙個機器學習的新知識,加油!決策樹學習是應用最廣的歸納推理演算法之一,是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一顆決策樹。決策樹通過把例項從根結點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬...

機器學習演算法 決策樹總結

1.決策樹學習的目的 從資料樣本集中歸納出一組具有分類能力的分類規則。2.樹模型和線性模型有什麼區別呢?樹形模型是乙個乙個特徵進行處理,之前線性模型是所有特徵給予權重相加得到乙個新的值。決策樹與邏輯回歸的分類區別也在於此 另外邏輯回歸只能找到線性分割,而決策樹可以找到非線性分割。3.id3,c4.5...