sklearn 決策樹學習筆記

2021-10-02 19:45:54 字數 1694 閱讀 3507

遍歷眾多特徵,計算每一次分類後的資訊增益,選取分類後熵值最小的特徵作為當前分類節點

防止過擬合,當每個資料都是乙個葉結點的時候,分類正確率是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給定條件...