python scikit-learn實現決策樹模型

python scikit-learn實現決策樹模型

科學計算包sklearn-learn,使用sklearn.tree.DecisionTreeClassifier類來實現決策樹分類算法,API如下:

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:特徵選擇算法,一種是基於信息熵,一種是基於基尼不純度,有研究表明,兩種算法差別不大,對模型的準確性沒有太大的影響,相對而言,信息熵的運算效率會低一些,因為他有對數運算。默認的是基尼不純度算法

max_depth:決策樹最大的深度,用來解決模型過擬合問題

min_impurity_decrease:信息增益的閾值,信息增益必須大於這個閾值,否則不分支

python實例:預測泰坦尼克號哪些人可能成為倖存者

數據集(892,12):乘客信息字段

PassengerID:乘客ID

Survived:標準信息,是否獲救

Pclass:倉位等級

Name:名字

Sex:性別

Age:年齡

Sibsp:兄弟姐妹同在船上的數量

Parch:同船的父輩人數

Ticket:船票

Fare:乘客的熱體指標

Cabin:乘客所在的船艙號

Embarked:乘客登船的港口

使用pandas完成數據處理的工作

python scikit-learn實現決策樹模型

使用模型進行訓練;

python scikit-learn實現決策樹模型

模型生成結果如下:

python scikit-learn實現決策樹模型

1,訓練集和測試集的準確率沒有相差很大,甚至有點接近,說明模型沒有過擬合

2,分類報告,給出了精準率,召回率,綜合評判指標f1及預測類別的樣本個數,是比較有效的模型評估方法

3,混淆矩陣,能清楚看出分類的好壞,比如,模型容易把屬於1類的樣本預測到0類中


分享到:


相關文章: