決策樹完成鳶尾花分類

2021-09-22 14:12:37 字數 2911 閱讀 3227

實驗樓專案

決策樹是一種特殊的樹形結構,一般由節點和有向邊組成。

其中,節點表示特徵、屬性或者乙個類。而有向邊包含有判斷條件。

決策樹學習(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...