決策樹演算法屬於監督學習演算法的範疇,適用於連續和分類輸出變量,通常會被用來解決分類和迴歸問題。
決策樹是一種類似流程圖的樹狀結構,其中每個內部節點表示對屬性的測試,每個分支表示測試的結果,每個節點都對應一個類別標籤。
開始,將整個訓練集視為根。
對於資訊增益,假設屬性是分類的,對於基尼指數,假設屬性是連續的。
在屬性值的基礎上,記錄被遞歸地分佈。
使用統計方法將屬性排序為根節點。
找到最佳屬性並將其放在樹的根節點上。
現在,將資料集的訓練集拆分為子集。在製作子集時,請確保訓練資料集的每個子集都應具有相同的屬性值。
透過在每個子集上重複1和2來找出所有分支中的葉節點。
需要經歷建置與營運兩個階段:
#建置階段,預處理資料集。使用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中文網其他相關文章!