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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Sklearn参数详解--决策树

發布時間:2023/12/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sklearn参数详解--决策树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總第106篇

前言

先來簡短的回顧一下決策樹原理:

決策樹學習的算法通常是一個遞歸地(根據某一準則,信息增益或基尼系數)選擇最優切分點/特征,并根據該特征對訓練數據集進行分割,使得對各個子數據集有一個最好的分類過程,這一過程對應著對特征空間的劃分,也對應著決策樹的構建,繼續在子數據集上循環這個切割的過程,直到所有的訓練數據子集被基本正確分類,或者沒有合適的特征為止。

你也可以看這里:

決策樹詳解
決策樹-CART算法

參數詳解

sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1,min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

criterion:特征選擇的標準,有信息增益和基尼系數兩種,使用信息增益的是ID3和C4.5算法(使用信息增益比),使用基尼系數的CART算法,默認是gini系數。

splitter:特征切分點選擇標準,決策樹是遞歸地選擇最優切分點,spliter是用來指明在哪個集合上來遞歸,有“best”和“random”兩種參數可以選擇,best表示在所有特征上遞歸,適用于數據集較小的時候,random表示隨機選擇一部分特征進行遞歸,適用于數據集較大的時候。

max_depth:決策樹最大深度,決策樹模型先對所有數據集進行切分,再在子數據集上繼續循環這個切分過程,max_depth可以理解成用來限制這個循環次數。

min_samples_split:子數據集再切分需要的最小樣本量,默認是2,如果子數據樣本量小于2時,則不再進行下一步切分。如果數據量較小,使用默認值就可,如果數據量較大,為降低計算量,應該把這個值增大,即限制子數據集的切分次數。

min_samples_leaf:葉節點(子數據集)最小樣本數,如果子數據集中的樣本數小于這個值,那么該葉節點和其兄弟節點都會被剪枝(去掉),該值默認為1。

min_weight_fraction_leaf:在葉節點處的所有輸入樣本權重總和的最小加權分數,如果不輸入則表示所有的葉節點的權重是一致的。

max_features:特征切分時考慮的最大特征數量,默認是對所有特征進行切分,也可以傳入int類型的值,表示具體的特征個數;也可以是浮點數,則表示特征個數的百分比;還可以是sqrt,表示總特征數的平方根;也可以是log2,表示總特征數的log個特征。

random_state:隨機種子的設置,與LR中參數一致。

max_leaf_nodes:最大葉節點個數,即數據集切分成子數據集的最大個數。

min_impurity_decrease:切分點不純度最小減少程度,如果某個結點的不純度減少小于這個值,那么該切分點就會被移除。

min_impurity_split:切分點最小不純度,用來限制數據集的繼續切分(決策樹的生成),如果某個節點的不純度(可以理解為分類錯誤率)小于這個閾值,那么該點的數據將不再進行切分。

class_weight:權重設置,主要是用于處理不平衡樣本,與LR模型中的參數一致,可以自定義類別權重,也可以直接使用balanced參數值進行不平衡樣本處理。

presort:是否進行預排序,默認是False,所謂預排序就是提前對特征進行排序,我們知道,決策樹分割數據集的依據是,優先按照信息增益/基尼系數大的特征來進行分割的,涉及的大小就需要比較,如果不進行預排序,則會在每次分割的時候需要重新把所有特征進行計算比較一次,如果進行了預排序以后,則每次分割的時候,只需要拿排名靠前的特征就可以了。

對象/屬性

classes_:分類模型的類別,以字典的形式輸出

clf.classes_ --------------- array([0, 1, 2])#表示0,1,2類別

feature_importances_:特征重要性,以列表的形式輸出每個特征的重要性
max_features_:最大特征數
n_classes_:類別數,與classes_對應,classes_輸出具體的類別
n_features_:特征數,當數據量小時,一般max_features和n_features_相等
n_outputs_:輸出結果數
tree_:輸出整個決策樹,用于生成決策樹的可視化

clf.tree_ --------- <sklearn.tree._tree.Tree at 0x241c20e5d30>

方法

decision_path(X):返回X的決策路徑
fit(X, y):在數據集(X,y)上使用決策樹模型
get_params([deep]):獲取模型的參數
predict(X):預測數據值X的標簽
predict_log_proba(X):返回每個類別的概率值的對數
predict_proba(X):返回每個類別的概率值(有幾類就返回幾列值)
score(X,y):返回給定測試集和對應標簽的平均準確率

總結

以上是生活随笔為你收集整理的Sklearn参数详解--决策树的全部內容,希望文章能夠幫你解決所遇到的問題。

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