日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分类算法——决策树算法及其R实现

發布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分类算法——决策树算法及其R实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

決策樹定義

以鳶尾花為例子來說明:

?

觀察上圖,判決鳶尾花的思考過程可以這么來描述:花瓣的長度小于2.4cm的是setosa(圖中綠色的分類),長度大于2.4cm的呢?可以通過寬度來判別,寬度小于1.8cm的是versicolor(圖中紅色的分類),其余的就是virginica(圖中黑色的分類)

用圖形來形象的展示上述思考過程便得到了下圖一棵決策樹:


這種從數據產生決策樹的機器學習技術叫做決策樹學習, 通俗點說就是決策樹,說白了,這是一種依托于分類、訓練上的預測樹,根據已知預測、歸類未來。

之前的k-近鄰算法也可以完成很多分類任務,但是他的缺點就是含義不清,說不清數據的內在邏輯,而決策樹則很好地解決了這個問題,他十分好理解。從存儲的角度來說,決策樹解放了存儲訓練集的空間,畢竟與一棵樹的存儲空間相比,訓練集的存儲需求空間太大了。

決策樹的構建

一、ID3的想法與實現

構造基本步驟

(1)生成樹階段。選取部分受訓數據建立決策樹,決策樹是按廣度優先建立直到每個葉節點包括相同的類標記為止。

(2)決策樹修剪階段。用剩余數據檢驗決策樹,如果所建立的決策樹不能正確回答所研究的問題,我們要對決策樹進行修剪直到建立一棵正確的決策樹。這樣在決策樹每個內部節點處進行屬性值的比較,在葉節點得到結論。從根節點到葉節點的一條路徑就對應著一條規則,整棵決策樹就對應著一組表達式規則。

問題:我們如何確定起決定作用的劃分變量。

用鳶尾花的例子來說這個問題思考的必要性。使用不同的思考方式,我們不難發現下面的決策樹也是可以把鳶尾花分成3類的。

為了找到決定性特征,劃分出最佳結果,我們必須認真評估每個特征。ID3算法以信息熵和信息增益以衡量標準。其他劃分的辦法為信息增益率和基尼不純指數,對應的算法為C4.5和CART。

信息熵(Entropy)主要指信息的混亂程度,變量的不確定性越大,熵的值也就越大,熵的公式可以表示為

信息增益(Information gain)指的是劃分前后熵的變化,可以用下面公式表示:

1 計算給定數據集的熵

2 按照給定特征劃分數據集

3 選擇最佳劃分(基于熵增益)?

4 遞歸構建決策樹

二、C4.5算法

C4.5是ID3算法的擴展

C4.5算法描述

(1)創建根節點N;

(2) IF T都屬于同一類C,則返回N為葉節點,標記為類C;

(3) IF T_attributelist為空或T中所剩的樣本數少于某給定值則返回N為葉節點,標記為T中出現最多的類;

(4) FOR each T_attributelist中的屬性計算信息增益率information gain ratio;

(5) N的測試屬性test_attribute=T_attributelist中具有最高信息增益率的屬性;

(6) IF測試屬性為連續型則找到該屬性的分割閥值;

(7) FOR each 由節點N長出的新葉節點{

??????????????? IF 該葉節點對應的樣本子集T’為空

????? ????????????????則分裂該葉節點生成一個新葉節點,將其標記為T中出現最多的類;

???????????????? ELSE在該葉節點上執行C4.5formtree(T’,T’_attributelist),對它繼續分裂;

?}

(8)計算每個節點的分類錯誤,進行樹剪枝。

?

以鳶尾花數據為例子,使用C4.5算法得到的分類樹見下圖:

三、?CART算法

分類與回歸樹(CART——Classification And Regression Tree)) ,二叉決策樹

CART算法描述

(1)創建根節點N;

(2)為N分配類別;

(3) IF T都屬于同一類別OR T中只剩一個樣本

???????????????? 則返回N為葉節點,為其分配類別;

(4) FOR each T_attributelist 中的屬性

???????????????? 執行該屬性上的一個劃分,計算此次劃分的GINI系數;

(5) N的測試屬性test_attribute=T_attributelist中具有最小GINI系數的屬性;

(6)劃分T得T1、T2兩個子集;

(7)調用cartformtree(T1);

(8)調用cartformtree(T2);

?
?

總結

以上是生活随笔為你收集整理的分类算法——决策树算法及其R实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。