遍歷眾多特徵,計算每一次分類後的資訊增益,選取分類後熵值最小的特徵作為當前分類節點
防止過擬合,當每個資料都是乙個葉結點的時候,分類正確率是100%,但是樹過於龐大。
from sklearn.datasets.california_housing import fetch_california_housing
from sklearn import tree
housing = fetch_california_housing()
print(type(housing))
print(housing["data"])
print(type(housing["data"]))
dtr = tree.decisiontreeregressor(max_depth=2)
dtr.fit(housing["data"][:,[6,7]],housing["target"])
dot_data = \
tree.export_graphviz(
dtr,
out_file = none,
feature_names=hoseing["feature_names"][6:8],
filled = true,
impurity = false,
rounded = true
)import os
os.environ["path"] += os.pathsep + 'd:/program files (x86)/graphviz2.38/bin/'
#將graphviz加入環境變數,如果在安裝graphviz時已經新增了環境變數,就不需要這一步
import pydotplus
graph = pydotplus.graph_from_dot_data(dot_data)
graph.get_nodes()[7].set_fillcolor("#fff2dd")
graph.write_png("./res.png")
from sklearn.model_selection import train_test_split
#分割訓練集
data_train,data_test,target_train,target_test = \
train_test_split(
housing["data"],
housing["target"],
test_size=0.1,
random_state = 42
)dtr = tree.decisiontreeregressor(random_state = 42)
dtr.fit(data_train,target_train)
print(dtr.score(data_test,target_test))
from sklearn.ensemble import randomforestregressor
#系統自己調整引數
rfr = randomforestregressor(random_state = 42)
rfr.fit(data_train,target_train)
print(rfr.score(data_test,target_test))
sklearn機器學習 決策樹
tree.decisiontreeclassifier 分類樹 tree.decisiontreeregressor 回歸樹 tree.export graphviz 將生成的決策樹匯出為dot格式,畫圖專用 from sklearn import tree 匯入需要的模組 clf tree.dec...
SKlearn之決策樹
決策樹是一種非引數的監督學習方法。模組 sklearn.tree sklearn建模的步驟 1 選擇並建立模型 例 clf tree.decisiontreeclassifier 2 提供資料訓練模型 例 clf clf.fit x train,y train 3 獲取需要的資訊 例 result ...
sklearn學習筆記(7) 決策樹 隨機森林
決策樹思想的 非常樸素,程式設計中的條件分支結構就是if then結構,最早的決策樹就是利用這類結構分割資料的一種分類學習方法。資訊熵,在1948年由克勞德 艾爾伍德 夏農提出,解決對資訊的量化度量問題 資訊增益,特徵a對訓練資料集d的資訊增益g d,a 定義為集合d的資訊熵h d 與特徵a給定條件...