knn演算法與決策樹

2021-09-16 19:54:01 字數 1312 閱讀 4060

knn演算法是機器學習中一種基礎的演算法,原理非常簡單,通過計算新資料與訓練特徵值之間的距離,然後選取k個距離最近的鄰居進行分類判斷,這k個例項的多數屬於某個類別,則該輸入例項就劃分到這個類別。

當然,k的取值要合適,如果k的取值過小,那麼**結果會對近鄰的例項點非常敏感,如果近鄰的例項點正好有雜訊,那麼**就會發生錯誤;但k的取值也不能過大,如果過大,**結果將變成乙個常量,完全忽略了訓練例項中大量有用的資訊。

對於距離的度量方式,我們可以採用的方式有很多,最常用的是歐式距離,計算公式為

我們也可以採用曼哈頓距離,計算公式為

決策樹是一種有監督學習的演算法,決策樹是根據一系列的規則進行分類,其本質是一連串的if-else語句。

決策樹主要由三部分構成:決策節點,分支,葉子節點。每個決策節點都代表乙個待分類的屬性或類別,決策節點下面是多個分支,每個分支都分出乙個葉子節點,每乙個葉子節點都代表乙個結果。

實現決策樹的演算法有id3演算法和c4.5演算法

id3演算法

id3演算法是以資訊理論為基礎,以資訊熵和資訊增益為衡量標準,從而實現對資料的歸納分類。它是建立在奧卡姆剃刀的基礎上:越是小型的決策樹越優於大的決策樹。

如何確定分類的準則呢?這裡就要引出資訊熵了,我們分別計算出不同準則下的資訊增益量,即每種準則下的資訊熵的數學期望,資訊增益量最大的即為最優準則。

除此之外,我們還要進行剪枝。剪枝分為預剪枝和後剪枝。預剪枝是先計算資訊增益再決定要不要分節點。後剪枝是先構建一棵完整的資訊樹再計算資訊增益進行剪枝。後剪枝決策樹通常比預剪枝決策樹保留了更多的分支,一般情形下,後剪枝決策樹的欠擬合風險小,效能往往也要優於預剪枝決策樹。但後剪枝過程是在構建完全決策樹之後進行的,並且要自底向上的對樹中的所有非葉結點進行逐一考察,因此其訓練時間開銷要比未剪枝決策樹和預剪枝決策樹都大得多。

c4.5演算法

c4.5演算法與id3演算法相比,做了如下幾方面的改進:

1 用資訊增益率來選擇屬性,克服了用資訊增益選擇屬性時取值多的不足。

2 在樹構造過程中剪枝。

3 能夠完成對連續屬性的離散化處理。

4 能夠對不完整的資料進行處理。

c4.5演算法的優點:產生的分類規則易於理解,準確率較高。缺點:c4.5演算法只適合能夠駐留於記憶體的資料集,當訓練集大到無法在記憶體容納時程式無法執行。

c4.5演算法與id3演算法只有樹的生成演算法,生成的樹容易產生過擬合:對訓練集匹配很好,但是**測試集效果較差。

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...

決策樹演算法

引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...