實驗樓專案
決策樹是一種特殊的樹形結構,一般由節點和有向邊組成。
其中,節點表示特徵、屬性或者乙個類。而有向邊包含有判斷條件。
決策樹學習(decision tree learning),亦簡稱為決策樹。
決策樹可以用來解決分類或回歸問題,分別稱之為分類樹或回歸樹。
其中,分類樹的輸出是乙個標量,而回歸樹的一般輸出為乙個實數。
熵(shāng)表示隨機變數不確定性的度量,熵越大,隨機變數的不確定性就越大。
每乙個特徵針對訓練資料集的前後資訊變化的影響是不一樣的,資訊增益越大,即代表這種影響越大。而影響越大,就表明該特徵更加重要。
使用sklearn
我們直接使用 sklearn 這個模組,它裡面內建了鳶尾花的學習資料集
# -*- coding: utf-8 -*-
from sklearn import datasets # 匯入方法類
iris = datasets.load_iris(
)# 載入 iris 資料集
iris_feature = iris.data # 特徵資料
iris_target = iris.target # 分類資料
iris_target # 檢視 iris_target
"""iris_target
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
iris_feature
array([[ 5.1, 3.5, 1.4, 0.2], # 乙個樣本,四個特徵
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
。。。。。。。
"""
scikit-learn 已經將花的原名稱進行了轉換,其中 0, 1, 2 分別代表 iris setosa, iris versicolour 和 iris virginica。
scikit-learn 還為我們提供了訓練集和資料集的方法
from sklearn.model_selection import train_test_split
feature_train, feature_test, target_train, target_test = train_test_split(iris_feature, iris_target, test_size=
0.33
, random_state=42)
target_train
feature_train
,訓練集特徵
feature_test
,測試集特徵
target_train
,訓練集目標值
target_test
,測試集目標值
test_size
測試集資料佔全部資料的百分比,
train_size
來指定訓練集所佔全部資料的百分比。
一般情況下,我們會將整個訓練集劃分為 70% 訓練集和 30% 測試集。最後的random_state
引數表示亂序程度.
模型訓練及**
from sklearn.tree import decisiontreeclassifier # 決策樹分類器
dt_model = decisiontreeclassifier(
)# 所以引數均置為預設狀態
dt_model.fit(feature_train,target_train)
# 使用訓練集訓練模型
predict_results = dt_model.predict(feature_test)
# 使用模型對測試集進行**
decisiontreeclassifier()
模型方法中也包含非常多的引數值。例如:
我們可以將**結果和測試集的真實值分別輸出,對照比較。
print
('predict_results:'
, predict_results)
print
('target_test:'
, target_test)
內建方法,檢視精準度
from sklearn.metrics import accuracy_score
print
(accuracy_score(predict_results, target_test)
)
python決策樹 sklearn鳶尾花資料集分類
def decision iris 用決策樹進行鳶尾花分類 匯入資料 iris load iris 劃分資料 x train,x test,y train,y test train test split iris.data,iris.target,random state 6 決策樹預估器 esti...
決策樹實現鳶尾花三分類
iris 鳶尾花 資料集是多重變數分析的資料集。資料集包含150行資料,分為3類,每類50行資料。每行資料報含4個屬性 sepal length 花萼長度 sepal width 花萼寬度 petal length 花瓣長度 和petal width 花瓣寬度 可通過這4個屬性 鳶尾花卉屬於三個種類...
決策樹之鳶尾花卉例項解析
決策樹之鳶尾花卉例項解析 1 介紹 以sklearn 資料集中的鳶尾花卉 iris 資料集為例,解析決策樹。鳶尾花卉 iris 資料集中有 150個樣本 示例 4個特徵 屬性 1個標籤 類別變數 以此 150個樣本為訓練樣本得到相應的決策樹。首先,明確一下資料集中的內容。通過以下 可以檢視 解說 f...