python資料分析實戰 決策樹演算法的分類與回歸

2021-10-24 04:33:17 字數 3628 閱讀 2379

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 班的小明同學和小方同學為了準備即將進行的校園羽毛球大賽,準備近乙個月的時間去練習打球。不過,並不是每一天都適合練球。通常,小明和小方需要考慮一些因素來決定今天是否適合打羽毛球,比如 今天是否有場地 若沒有室內場地,就只能選擇室外場地 如果是要在室外練習的話,天氣是否合適,是否會颳風等,...

資料分析 決策樹演算法 決策樹的概念

顧名思義,決策樹將以樹狀結構表現出來,被用來輔助作出決策。具體結合例子來說,我們平時做決策時大多會伴隨著層層的選擇,比如找房子的時候,會考慮離工作 上課地點的距離 大小和 光照等等因素。如果乙個房子通勤快 低 光照好 空間大 雖然不太可能存在,但是只要存在這種房子 我們一定會作出 買 租 的決策。將...