SKlearn實現鳶尾花分類:決策樹

2021-01-07 是勇敢

決策樹簡介

決策樹是一種特殊的樹形結構,一般由節點和有向邊組成。其中,節點表示特徵、屬性或者一個類。而有向邊包含有判斷條件。如圖所示,決策樹從根節點開始延伸,經過不同的判斷條件後,到達不同的子節點。而上層子節點又可以作為父節點被進一步劃分為下層子節點。一般情況下,我們從根節點輸入數據,經過多次判斷後,這些數據就會被分為不同的類別。這就構成了一顆簡單的分類決策樹。

特徵選擇

特徵選擇是建立決策樹之前十分重要的一步。如果是隨機地選擇特徵,那麼所建立決策樹的學習效率將會大打折扣。舉例來講,銀行採用決策樹來解決信用卡審批問題,判斷是否向某人發放信用卡可以根據其年齡、工作單位、是否有不動產、歷史信貸情況等特徵決定。而選擇不同的特徵,後續生成的決策樹就會不一致,這種不一致最終會影響到決策樹的分類效率。

通常我們在選擇特徵時,會考慮到兩種不同的指標,分別為:信息增益和信息增益比。要想弄清楚這兩個概念,我們就不得不提到資訊理論中的另一個十分常見的名詞 —— 熵。

熵(Entropy)是表示隨機變量不確定性的度量。簡單來講,熵越大,隨機變量的不確定性就越大。而特徵 A 對於某一訓練集 D 的信息增益 g(D, A) 定義為集合 D 的熵 H(D) 與特徵 A 在給定條件下 D 的熵 H(D/A) 之差。

實現代碼

from sklearn import datasets

import matplotlib.pyplot as plt

import numpy as np

from sklearn import tree

# Iris數據集是常用的分類實驗數據集,

# 由Fisher, 1936收集整理。Iris也稱鳶尾花卉數據集,

# 是一類多重變量分析的數據集。數據集包含150個數據集,

# 分為3類,每類50個數據,每個數據包含4個屬性。

# 可通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬於(Setosa,Versicolour,Virginica)三個種類中的哪一類。

#載入數據集

iris=datasets.load_iris()

iris_data=iris['data']

iris_label=iris['target']

iris_target_name=iris['target_names']

X=np.array(iris_data)

Y=np.array(iris_label)

#訓練

clf=tree.DecisionTreeClassifier(max_depth=3)

clf.fit(X,Y)

#這裡預測當前輸入的值的所屬分類

print('類別是',iris_target_name[clf.predict([[7,1,1,1]])[0]])

相關焦點

  • 以鳶尾花數據集為例,用Python對決策樹進行分類
    決策樹的優點包括可以同時用於回歸和分類,易於解釋且不需要特徵縮放。同時決策樹也存在劣勢,容易出現過度擬合就是其中之一。本教程主要介紹了用於分類的決策樹,也稱為分類樹。此外,本教程還將涵蓋:· 分類樹的解剖結構(樹的深度、根節點、決策節點、葉節點/終端節點)。
  • python分類-決策樹
    決策樹屬於機器學習中的監督學習算法之一,需要根據已知樣本來訓練並得到一個可以使用的模型,然後再使用該模型對未知樣本進行分類。在決策樹算法中,構造一棵完整的樹並用來分類的計算量和空間複雜度都非常高,可以採用剪枝算法在保證模型性能的前提下刪除不必要的分支。
  • 機器學習決策樹:sklearn分類和回歸
    作者:alg-flody編輯:Emily昨天的推送機器學習:對決策樹剪枝,分析了決策樹需要剪枝,今天再就這個話題,藉助 sklearn 進一步分析決策樹分類和回歸時過擬合發生後,該如何解決的問題。上周推送的機器學習:談談決策樹,介紹了利用邏輯回歸算法,二分類一個擁有2個特徵的數據集,模擬的結果如下所示:
  • 使用python+sklearn實現在鳶尾花數據集上繪製集成樹的決策面
    繪製在鳶尾花數據集上一對特徵訓練的集成樹的決策面。
  • 機器學習之決策樹在sklearn中的實現
    小夥伴們大家好~o( ̄▽ ̄)ブ,首先聲明一下,我的開發環境是Jupyter lab,所用的庫和版本大家參考:Python 3.7.1(你的版本至少要3.4以上Scikit-learn 0.20.0 (你的版本至少要0.20Graphviz 0.8.4 (沒有畫不出決策樹哦,安裝代碼conda install python-graphviz
  • Python機器學習sklearn模塊——決策樹
    決策樹可以用來解決分類與回歸問題,是一種非線性模型;一課決策樹一般包含一個根節點、若干個內部節點和若干個葉節點;生產決策樹最關鍵的是如何選擇最優劃分屬性,我們希望分支節點所包含的樣本近可能的屬於同一類別,即節點的「純度」越來越高;而評估樣本集合純度的常用指標有信息增益、增益率和基尼指數;決策樹容易出現過擬合狀況,因為它們可以通過精確的描述每個訓練樣本的 特徵而構建出複雜的決策樹
  • sklearn學習(三):決策樹
    從根節點開始一步步走到葉子節點(決策)        所有的數據最終都會落到葉子節點上,即可以做分類也可以做回歸。決策樹的訓練與預測        訓練階段:從給定的訓練集構造出來一個樹(從根節點開始選擇特徵,如何進行特徵切分)。        測試階段:根據構造出來的樹模型從上到下走一遍就好了。#一旦構建好了決策樹,分類和預測任務就相當簡單了關鍵在於如何去構建一個表現好的樹。
  • Sklearn參數詳解--決策樹
    前言先來簡短的回顧一下決策樹原理:決策樹學習的算法通常是一個遞歸地(根據某一準則,信息增益或基尼係數)選擇最優切分點/特徵,並根據該特徵對訓練數據集進行分割,使得對各個子數據集有一個最好的分類過程,這一過程對應著對特徵空間的劃分,也對應著決策樹的構建,繼續在子數據集上循環這個切割的過程,直到所有的訓練數據子集被基本正確分類,或者沒有合適的特徵為止。
  • 使用python+sklearn實現繪製VotingClassifier的決策邊界
    在鳶尾花(Iris)數據集的兩個特徵上繪製VotingClassifier的決策邊界
  • 【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第6章 決策樹
    決策樹也是隨機森林的基本組成部分(參見第 7 章),它是當今最強大的機器學習算法之一。 在本章中,我們將首先討論如何使用決策樹進行訓練,可視化和預測。 然後快速過一遍 Scikit-Learn 中使用的 CART 訓練算法,並且討論如何調整樹並將其用於回歸任務。 最後,我們會討論決策樹的一些局限性。
  • 機器學習 | 決策樹之分類樹
    今天推出機器學習系列筆記第1期,本期分享內容為:機器學習之決策樹中的分類樹。(筆者使用的是Mac系統)決策樹(Decision Tree):是一種非參數的有監督學習算法,在已知各種情況發生概率的基礎上,通過構成決策樹來取淨現值的期望值大於等於零的概率,是直觀運用概率分析的圖解法,以解決分類和回歸問題。分為分類樹和回歸樹。
  • KNN算法(三)-sklearn實現
    在python中sklearn庫可直接實現KNN算法。本篇介紹運用sklearn庫實現KNN算法。sklearn安裝要求Python(>=2.7 or >=3.3)、NumPy (>= 1.8.2)、SciPy (>= 0.13.3)。如果已經安裝NumPy和SciPy,安裝scikit-learn可以使用pip install -U scikit-learn。
  • 機器學習(二)-------KNN算法的sklearn KNN實踐
    一.Skelarn KNN參數概述要使用sklearnKNN算法進行分類,我們需要先了解sklearnKNN算法的一些基本參數,那麼這節就先介紹這些內容吧。- algorithm:在 sklearn 中,要構建 KNN 模型有三種構建方式,1. 暴力法,就是直接計算距離存儲比較的那种放松。2. 使用 kd 樹構建 KNN 模型 3. 使用球樹構建。其中暴力法適合數據較小的方式,否則效率會比較低。如果數據量比較大一般會選擇用 KD 樹構建 KNN 模型,而當 KD 樹也比較慢的時候,則可以試試球樹來構建 KNN。
  • sklearn 與分類算法
    multi_class:多分類問題轉化,如果使用 "ovr",則是將多分類問題轉換成多個二分類為題看待;如果使用 "multinomial",損失函數則會是整個概率分布的多項式擬合損失。不常用的參數這裡就不再介紹,想要了解細節介紹,可以sklearn的官網查看。
  • 從決策樹到隨機森林:樹型算法的原理與實現
    它常使用 scikit 生成並實現決策樹: sklearn.tree.DecisionTreeClassifier 和 sklearn.tree.DecisionTreeRegressor 分別構建分類和回歸樹。CART 模型CART 模型包括選擇輸入變量和那些變量上的分割點,直到創建出適當的樹。
  • 數據挖掘從入門到放棄(二):決策樹
    ,本篇介紹決策分類樹算法」決策樹算法理解決策樹是直觀運用概率分析的樹形分類器,是很常用的分類方法,屬於監管學習,決策樹分類過程是從根節點開始,根據特徵屬性值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果。
  • 機器學習數據分析極簡思路及sklearn算法實踐小試
    鳶尾花數據所有feature基本數理統計舉個慄子,假設在鳶尾花數據集中,有一個樣本顯示鳶尾花花瓣長度10m,其他諸如花瓣寬度、花萼長寬值都正常,可以腦補一下這是一朵什麼樣的花,那麼這個樣本顯然應該剔除。
  • 菜鳥學機器學習,Sklearn庫主要模塊功能簡介
    數據集主要圍繞分類和回歸兩類經典任務,對於不同需求,常用數據集簡介如下:load_breast_cancer:乳腺癌數據集,特徵為連續數值變量,標籤為0或1的二分類任務load_iris:經典鳶尾花數據集,特徵為連續數值變量,標籤為0/1/2的三分類任務,且各類樣本數量均衡,均為50個load_wine:紅酒數據集,與鳶尾花數據集特點類似,也是用於連續特徵的3
  • 決策樹
    決策樹簡介3.   構造決策樹的基本算法4.   決策樹的應用一、前言機器學習中分類和預測算法的評估:1.準確率:    算法達到的準確率是多少?2.速度    算法的速度怎麼樣?算法複雜度高不高?(3)剪枝函數決策樹生成算法得到的樹對訓練數據的分類很準確,但對未知數據的分類卻沒那麼準確,容易過擬合;因為決策樹考慮的特徵太多,構建得太複雜。 所以我們需要對決策樹進行剪枝:從已生成的樹上裁掉一些子樹或葉節點,並將其根節點或父節點作為新的葉節點,以此簡化樹。剪枝算法很多,這裡引入一種簡單的:極小化決策樹整體的損失函數。
  • 使用sklearn隨機森林算法實現手寫數字識別
    ,首先看一下決策樹算法(Decision Tree)決策樹算法通過不斷的分支條件篩選,最終預測分類做出決定,舉個簡單的例子,你去找工作,對方給了你一個offer,下面可能就是你決定是否最終接受或者拒絕offer一系列條件就是內部節點(矩形)最終的決定就是外部節點(葉子-橢圓)後你自己可能一個人根據上述條件決定接受了offer,但是有時候你還很不確定,你就會去很隨機的問問你周圍的幾個朋友