科學計算包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完成數據處理的工作
使用模型進行訓練;
模型生成結果如下:
1,訓練集和測試集的準確率沒有相差很大,甚至有點接近,說明模型沒有過擬合
2,分類報告,給出了精準率,召回率,綜合評判指標f1及預測類別的樣本個數,是比較有效的模型評估方法
3,混淆矩陣,能清楚看出分類的好壞,比如,模型容易把屬於1類的樣本預測到0類中
閱讀更多 愛數據的小司機 的文章