該程式分為三部分:
1、檢視資料
2、通過資料樣本的個別特徵,搭建決策樹,並 可使化
3、將資料分為訓練集和測試集,搭建決策樹和隨機森林,並進行測試和評估!
#新增基本的庫
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
載入資料
from sklearn.datasets.california_housing import fetch_california_housing
housing = fetch_california_housing()
print(housing.descr)
檢視資料型別
housing.data.shape
housing.data[0]
建立決策樹
from sklearn import tree
dtr = tree.decisiontreeregressor(max_depth = 2)
#建立深度為2的決策樹
dtr.fit(housing.data[:, [6, 7]], housing.target)
#利用資料建模
#print(help(tree.export_graphviz))
#要視覺化顯示 首先需要安裝 graphviz
import pydotplus
dot_data = tree.export_graphviz(dtr,out_file =none,
feature_names = housing.feature_names[6:8],
filled = true,
impurity = false,
)
#pip install pydotplus
import pydotplus
graph = pydotplus.graph_from_dot_data(dot_data)
graph.get_nodes()[7].set_fillcolor("#fff2dd")
from ipython.display import image
image(graph.create_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)
#評估dtr.score(data_test, target_test)
評估分類正確率為:
0.637355881715626
使用隨機森林進行分類
先除錯函式,選取合適的隨機森林的引數
#使用交叉驗證選取引數
from sklearn.model_selection import gridsearchcv
#一般把引數寫成字典的格式
tree_param_grid =
#第乙個引數是模型,第二個引數是待選引數,cv進行幾次交叉驗證
grid = gridsearchcv(randomforestregressor(),param_grid=tree_param_grid, cv=5)
grid.fit(data_train, target_train)
grid.best_params_, grid.best_score_
#,grid.cv_results_
執行結果為:
(, 0.8067555108702777)
將上述的結果中合適的引數,加入重新建立的隨機森林函式中
#使用引數從新訓練隨機森林
rfr = randomforestregressor( min_samples_split=3,n_estimators = 100,random_state = 42)
rfr.fit(data_train, target_train)
rfr.score(data_test, target_test)
執行結果:
0.8088623476993486
相對於決策樹,隨機森林的分類的正確提告了將近20%。
sklearn學習筆記(7) 決策樹 隨機森林
決策樹思想的 非常樸素,程式設計中的條件分支結構就是if then結構,最早的決策樹就是利用這類結構分割資料的一種分類學習方法。資訊熵,在1948年由克勞德 艾爾伍德 夏農提出,解決對資訊的量化度量問題 資訊增益,特徵a對訓練資料集d的資訊增益g d,a 定義為集合d的資訊熵h d 與特徵a給定條件...
機器學習 7 決策樹與隨機森林
如上圖所示,這就是一棵決策樹。決策樹的劃分依據 資訊增益 資訊增益表示,得知特徵x的資訊而使得類y的資訊的不確定性減少的程度。資訊熵越小,資訊增益越大,減少的不確定性越大。公式如下 理解即可 通過乙個例子計算一下,如下圖一些特徵 年齡 有工作 房子 信貸 目標 類別即是否放貸 h d 為總的經驗熵 ...
隨機森林和決策樹區別 AI學習之決策樹與隨機森林
決策樹 使用環境 資訊不確定性衡量熵值型別 資訊熵 資訊不確定性衡量 資訊增益 父節點熵 子節點熵,最大資訊增益的特徵為最佳分割特徵 舉例 示例 依據天氣 是否打高爾夫球的概率 兩個步驟 步驟1 確定分割節點,對於分割節點的每種情況繼續進行分割 步驟2 依據建好的樹進行 步驟1 建樹 確定父節點 步...