首頁  >  文章  >  後端開發  >  Python實作決策樹演算法的原理與實作方式

Python實作決策樹演算法的原理與實作方式

PHPz
PHPz轉載
2024-01-22 19:24:11466瀏覽

决策树算法原理 Python实现决策树算法

決策樹演算法屬於監督學習演算法的範疇,適用於連續和分類輸出變量,通常會被用來解決分類和迴歸問題。

決策樹是一種類似流程圖的樹狀結構,其中每個內部節點表示對屬性的測試,每個分支表示測試的結果,每個節點都對應一個類別標籤。

決策樹演算法想法

開始,將整個訓練集視為根。

對於資訊增益,假設屬性是分類的,對於基尼指數,假設屬性是連續的。

在屬性值的基礎上,記錄被遞歸地分佈。

使用統計方法將屬性排序為根節點。

找到最佳屬性並將其放在樹的根節點上。

現在,將資料集的訓練集拆分為子集。在製作子集時,請確保訓練資料集的每個子集都應具有相同的屬性值。

透過在每個子集上重複1和2來找出所有分支中的葉節點。

Python實作決策樹演算法

需要經歷建置與營運兩個階段:

#建置階段,預處理資料集。使用Python sklearn套件從訓練和測試中拆分資料集。訓練分類器。

營運階段,作出預測。計算準確度。

資料導入,為了導入和操作數據,我們使用了python中提供的pandas包。

在這裡,我們使用的URL直接從UCI網站取得資料集,無需下載資料集。當您嘗試在系統上執行此程式碼時,請確保系統應具有活動的網路連線。

由於資料集由“,”分隔,所以我們必須將sep參數的值作為傳遞。

另一件事是注意資料集不包含標頭,因此我們將Header參數的值作為none傳遞。如果我們不傳遞header參數,那麼它將把資料集的第一行視為header。

資料切片,在訓練模型之前,我們必須將資料集拆分為訓練和測試資料集。

為了分割資料集進行訓練和測試,我們使用了sklearn模組train_test_split

首先,我們必須將目標變數與資料集中的屬性分開。

X=balance_data.values[:,1:5]
Y=balance_data.values[:,0]

以上是分隔資料集的程式碼行。變數X包含屬性,而變數Y包含資料集的目標變數。

下一步是拆分資料集以用於訓練和測試目的。

X_train,X_test,y_train,y_test=train_test_split(
X,Y,test_size=0.3,random_state=100)

上一行拆分資料集以進行訓練和測試。由於我們在訓練和測試之間以70:30的比例拆分資料集,因此我們將test_size參數的值傳遞為0.3。

random_state變數是用於隨機取樣的偽隨機數產生器狀態。

以上是Python實作決策樹演算法的原理與實作方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:163.com。如有侵權,請聯絡admin@php.cn刪除