cart演算法實現鸞尾花分類**和波士頓房價回歸**
1、這兩個演算法差別不是特別大,乙個是用資訊增益來判斷,乙個是用資訊增益率來判斷,在sklearn庫中指定 criterion=「entropy」 即可,只是準確度不一樣。匯入相關的包2、這兩個演算法只能做分類,不能做回歸。
# coding=utf-8
from sklearn.datasets import load_boston,load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import decisiontreeclassifier
from sklearn.metrics import accuracy_score
載入資料
#準備資料
feature = load_iris()[
'data'
]label = load_iris(
).target
train_feature,test_feature,train_label,test_label = train_test_split(feature,label,test_size=
0.3,random_state=
0)
建立分類樹–**結果
#建立樹結構 -- 資訊熵
tree = decisiontreeclassifier(criterion=
"entropy"
)#擬合資料模型
tree_model = tree.fit(train_feature,train_label)
# print(tree_model)
#開始**
predict_label = tree_model.predict(test_feature)
#準確度
corret_rate=accuracy_score(test_label,predict_label)
print
('準確度為:'
,round
(corret_rate,6)
)
**結果
準確度為: 0.977778
1、cart演算法是在id3和c4.5的基礎上改經公升級的,全英文名叫做classfication and regression tree,中文名叫分類回歸樹。需要匯入的包2、 id3和c4.5演算法可以生成二叉樹或者多叉樹,而cart演算法只能生成二叉樹,既可以分類,又可以回歸。
3、cart演算法利用的統計指標是基尼係數,id3是採用資訊增益做判斷,而c4.5採用的是資訊增益率。
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score,r2_score,mean_absolute_error,mean_squared_error
from sklearn.tree import decisiontreeclassifier,decisiontreeregressor
from sklearn.datasets import load_iris,load_boston
載入鸞尾花資料
#準備資料 用cart分類樹**鸞尾花的資料
iris_data = load_iris(
)#鸞尾花,一共有150個資料
# print(iris_data)
feature = iris_data[
"data"
]lable = iris_data[
"target"
]#隨機抽取33%的資料作為測試集,其餘的為訓練集
train_feature,test_feature,train_lable,test_lable = train_test_split(feature,lable,test_size=
0.33
,random_state=
0)
建立cart分類樹–**結果
#建立cart分類樹 輸出**結果
clf = decisiontreeclassifier(criterion=
"gini"
)#基尼係數
# print(clf)
#構造cart分類樹模型
clf = clf.fit(train_feature,train_lable)
#用cart分類樹作出**
test_predict = clf.predict(test_feature)
#**結果與測試集本身的結果做對比
# print(test_predict) #**結果
# print(test_lable) #測試集本身的結果
score = accuracy_score(test_lable,test_predict)
print
("cart分類樹**準確度為:%.4lf"
% score)
載入波士頓房價資料
#準備資料
boston = load_boston(
)#探索資料
feature2 = boston[
"data"
]price = boston[
"target"
]#隨機抽取33%的資料作為測試集,其餘為訓練集
train_feature2,test_feature2,train_price,test_price = train_test_split(feature2,price,test_size=
0.33
)
建立cart回歸樹–**結果
#建立cart回歸樹
tree = decisiontreeregressor(
)#擬合訓練集模型
tree = tree.fit(train_feature2,train_price)
#對測試集進**價**
predict_price = tree.predict(test_feature2)
#測試集的結果評價
print
("回歸樹的最小二乘偏差均值:"
,mean_squared_error(test_price,predict_price)
)print
("回歸樹的最小絕對值偏差均值:"
,mean_absolute_error(test_price,predict_price)
)
**結果:
cart分類樹**準確度為:0.9600回歸樹的最小二乘偏差均值: 17.521317365269464
回歸樹的最小絕對值偏差均值: 2.899401197604791
python實戰 資料分析 決策樹
主要包括兩部分資料 訓練集train.csv 和測試集 test.csv 運用sklearn中運用decisiontreeclassifier 分類器來進行 到目前為止,sklearn 中只實現了 id3 與 cart決策樹,在構造 decisiontreeclassifier 類時,其中有乙個引數...
資料分析 決策樹
引言高二 1 班的小明同學和小方同學為了準備即將進行的校園羽毛球大賽,準備近乙個月的時間去練習打球。不過,並不是每一天都適合練球。通常,小明和小方需要考慮一些因素來決定今天是否適合打羽毛球,比如 今天是否有場地 若沒有室內場地,就只能選擇室外場地 如果是要在室外練習的話,天氣是否合適,是否會颳風等,...
資料分析 決策樹演算法 決策樹的概念
顧名思義,決策樹將以樹狀結構表現出來,被用來輔助作出決策。具體結合例子來說,我們平時做決策時大多會伴隨著層層的選擇,比如找房子的時候,會考慮離工作 上課地點的距離 大小和 光照等等因素。如果乙個房子通勤快 低 光照好 空間大 雖然不太可能存在,但是只要存在這種房子 我們一定會作出 買 租 的決策。將...