# 匯入相關包
import numpy as np
import pandas as pd
# 匯入資料集
from sklearn.datasets import load_boston
# 匯入模型
from sklearn.tree import decisiontreeregressor
from sklearn.tree import decisiontreeclassifier
# 資料分割包
from sklearn.model_selection import train_test_split
# 評價包
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
from sklearn.metrics import accuracy_score
# 匯入資料集
data = load_boston(
)x = data.data
y = data.target
# 分割資料、測試集為總數的1/4
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=
0.25
)# 簡歷模型
dtr = decisiontreeregressor(
)# 訓練模型
dtr.fit(train_x, train_y)
# **
predict_y = dtr.predict(test_x)
# 評分
("mean_absolute_error:"
, mean_absolute_error(test_y, predict_y)
("mean_squared_error:"
, mean_squared_error(test_y, predict_y)
("r2_score:"
, r2_score(test_y, predict_y)
)
data = load_iris(
)x = data.data
y = data.target
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=
0.3,
random_state=33)
dtc = decisiontreeclassifier(
)dtc.fit(train_x, train_y)
predict_y = dtc.predict(test_x)
# 評分
("mean_absolute_error:"
, mean_absolute_error(test_y, predict_y)
("mean_squared_error:"
, mean_squared_error(test_y, predict_y)
("r2_score:"
, r2_score(test_y, predict_y)
('accuracy_score:'
, accuracy_score(test_y, predict_y)
)
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹之CART
本系列分享由三篇部落格組成,建議從前往後閱讀學習。決策樹之id3 決策樹之c4.5 決策樹之cart 前面我們講到了決策樹演算法id3,和c4.5。c4.5是在id3的基礎上發展而來的,c4.5還存在的缺陷有 1 c4.5不能解決回歸的問題。2 c4.5需要進行多個對數計算,效率比較低。3 對於離散...
決策樹(CART演算法)
分類問題中,假設有k個類,樣本點屬於第k類的概率為p kp k pk 則概率分布的基尼指數定義為 其中p kp k pk 表示選中的樣本屬於k kk類別的概率,則這個樣本被分錯的概率為 1 pk 1 p k 1 pk 對於給定的樣本集合d,其基尼指數為 這裡的c kc k ck 是d中屬於第k類的樣...