导入训练好的决策树文件_决策树在sklearn中的实现
小伙伴們大家好~o( ̄▽ ̄)ブ,今天做一下如何使用sklearn實(shí)現(xiàn)決策樹,首先聲明一下,我的開發(fā)環(huán)境是Jupyter lab,所用的庫和版本大家參考:
Python 3.7.1(你的版本至少要3.4以上)
Scikit-learn 0.20.0 (你的版本至少要0.20)
Graphviz 0.8.4 (沒有畫不出決策樹哦,安裝代碼conda install python-graphviz
Numpy 1.15.3, Pandas 0.23.4, Matplotlib 3.0.1, SciPy 1.1.0
用SKlearn 建立一棵決策樹
這里采用的數(shù)據(jù)集是SKlearn中的紅酒數(shù)據(jù)集。
1 導(dǎo)入需要的算法庫和模塊
from sklearn import tree #導(dǎo)入tree模塊 from sklearn.datasets import load_wine #導(dǎo)入紅酒數(shù)據(jù)集 from sklearn.model_selection import train_test_split #導(dǎo)入訓(xùn)練集和測試集切分包2 探索數(shù)據(jù)
wine = load_wine() wine.data wine.data.shape wine.target wine.target.shape運(yùn)行的結(jié)果是這樣子的:
data就是該數(shù)據(jù)集的特征矩陣,從運(yùn)行結(jié)果可以看出,該紅酒數(shù)據(jù)集一共有178條記錄,13個特征。
特征矩陣中有178條記錄,相對應(yīng)的標(biāo)簽Y就有178個數(shù)據(jù)。
如果wine是一張表,應(yīng)該長這樣:
import pandas as pd pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)這是數(shù)據(jù)集特征列名和標(biāo)簽分類
wine.feature_names wine.target_names3 分訓(xùn)練集和測試集
這里選取30%作為測試集。切分好之后,訓(xùn)練集有124條數(shù)據(jù),測試集有54條數(shù)據(jù)。
Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3) Xtrain.shape Xtest.shape4 建立模型
clf = tree.DecisionTreeClassifier(criterion="entropy") #初始化樹模型 clf = clf.fit(Xtrain, Ytrain) #實(shí)例化訓(xùn)練集 score = clf.score(Xtest, Ytest) #返回預(yù)測的準(zhǔn)確度 ? score5 畫出一棵樹
feature_name = ['酒精','蘋果酸','灰','灰的堿性','鎂','總酚','類黃酮','非黃烷類酚類','花青素','顏色強(qiáng)度','色調(diào)','od280/od315稀釋葡萄酒','脯氨酸'] ? import graphviz dot_data = tree.export_graphviz(clf,out_file=None,feature_names= feature_name,class_names=["琴酒","雪莉","貝爾摩德"],filled=True,rounded=True) graph = graphviz.Source(dot_data) graph6 探索決策樹
#特征重要性 clf.feature_importances_ ? [*zip(feature_name,clf.feature_importances_)]到現(xiàn)在為止,我們已經(jīng)學(xué)會建立一棵完整的決策樹了。有興趣的話,動手建立一棵屬于自己的決策樹吧~
總結(jié)
以上是生活随笔為你收集整理的导入训练好的决策树文件_决策树在sklearn中的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信从原版到现在所有界面图片_微信突然宣
- 下一篇: github可视化_Cesium数据可视