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

2021-01-10 是勇敢

決策樹簡介

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

特徵選擇

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

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

熵(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對決策樹進行分類
    決策樹的優點包括可以同時用於回歸和分類,易於解釋且不需要特徵縮放。同時決策樹也存在劣勢,容易出現過度擬合就是其中之一。本教程主要介紹了用於分類的決策樹,也稱為分類樹。此外,本教程還將涵蓋:· 分類樹的解剖結構(樹的深度、根節點、決策節點、葉節點/終端節點)。
  • 機器學習之決策樹在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模塊——決策樹
    決策樹可以用來解決分類與回歸問題,是一種非線性模型;一課決策樹一般包含一個根節點、若干個內部節點和若干個葉節點;生產決策樹最關鍵的是如何選擇最優劃分屬性,我們希望分支節點所包含的樣本近可能的屬於同一類別,即節點的「純度」越來越高;而評估樣本集合純度的常用指標有信息增益、增益率和基尼指數;決策樹容易出現過擬合狀況,因為它們可以通過精確的描述每個訓練樣本的 特徵而構建出複雜的決策樹
  • 基於Python的決策樹分類器與剪枝
    決策樹算法簡介決策樹容易過度擬合,因為算法繼續將節點分割為子節點,直到每個節點變得均勻與測試集相比,訓練數據的精度要高得多,因此需要對決策樹進行剪枝,以防止模型過度擬合。剪枝可以通過控制樹的深度、每個節點的最大/最小樣本數、要拆分的節點的最小不純度增益和最大葉節點來實現Python允許用戶使用基尼不純度或熵作為信息增益準則來開發決策樹可以使用網格搜索或隨機搜索CV對決策樹進行微調。CV代表交叉驗證三種不同不純度標準的比較下面概述的代碼片段提供了不同不純度標準的直觀比較,以及它們如何隨不同的概率值而變化。
  • 從決策樹到隨機森林:樹型算法的原理與實現
    它常使用 scikit 生成並實現決策樹: sklearn.tree.DecisionTreeClassifier 和 sklearn.tree.DecisionTreeRegressor 分別構建分類和回歸樹。CART 模型CART 模型包括選擇輸入變量和那些變量上的分割點,直到創建出適當的樹。
  • 機器學習之sklearn基礎教程!
    數據準備我們使用鳶尾花數據集,進行分析考核可視化# 引入數據from sklearn import datasetsimport numpy as npiris = datasets.load_iris()X = iris.data[:,[2,3]]y = iris.targetprint
  • 機器學習實戰:決策樹原來這麼簡單
    這一篇中,我們來講解監督學習中經常用到的算法,決策樹。本文章節1、決策樹介紹2、信息熵是啥3、決策樹與信息熵怎麼結合4、決策樹的剪枝5、決策樹的算法有哪些6、sklearn決策樹參數介紹7、決策樹實戰決策樹介紹決策樹是啥?
  • 如何用sklearn創建機器學習分類器?這裡有一份上手指南
    原作:Kasper Fredenslund林鱗 編譯自 Data Science Central量子位 出品 |分類器是數據挖掘中對樣本進行分類的方法的統稱,也是入坑機器學習的一項必備技能。這篇文章中,作者簡要介紹了用Python中的機器學習工具scikit-learn(sklearn)創建機器學習分類器的步驟與注意事項。
  • 特徵選擇及基於Sklearn的實現
    threshold=(0.8*(1-0.8)))5X_selected = sel.fit_transform(X)6print('Selected X:\n', X_selected)單變量特徵選擇是通過單變量統計檢驗來選擇最佳特徵,Sciket-learn將特徵選擇用包含transform函數的對象來實現。
  • 運用sklearn進行線性判別分析(LDA)代碼實現
    基於sklearn的線性判別分析(LDA)代碼實現一、前言及回顧本文記錄使用sklearn庫實現有監督的數據降維技術——線性判別分析(LDA)。在上一篇LDA線性判別分析原理及python應用(葡萄酒案例分析),我們通過詳細的步驟理解LDA內部邏輯實現原理,能夠更好地掌握線性判別分析的內部機制。
  • 使用Scikit-Learn了解決策樹分類
    決策樹是用於分類和回歸任務的最基本的機器學習工具之一。在這篇文章中,我將介紹-以基尼雜質為標準的決策樹算法拆分原則。決策樹在現實生活數據分類中的應用。創建一個管道,並使用GridSearchCV為分類任務選擇最佳參數。決策樹決策樹(以下簡稱DT)算法的思想是學習一組if/else問題來進行決策。決策樹可以組合數值數據和分類數據。
  • 基於 Python 實現動態分類器集成學習
    Dynamic Ensemble Selection Library或簡稱為DESlib是一個開放原始碼Python庫(https://github.com/scikit-learn-contrib/DESlib),它提供了許多不同的動態分類器選擇算法的實現。DESlib是一個易於使用的集成學習庫,致力於實現動態分類器和集成選擇的最新技術。
  • 基於貝葉斯定理的算法——樸素貝葉斯分類
    本文作者:王   歌文字編輯:孫曉玲通過前面的介紹我們知道,KNN和決策樹這兩種算法雖然簡單易懂
  • 機器學習|決策樹的生成過程是怎樣?(一)
    本文筆者將用具體例子講述決策樹的構建過程,分析:決策樹生成過程中有什麼樣的問題?一、基本概念決策樹的定義:首先,決策樹是一種有監督的分類算法——即給定X,Y值,構建X,Y的映射關係。不同於線性回歸等是多項式,決策樹是一種樹形的結構,一般由根節點、父節點、子節點、葉子節點構成如圖所示。
  • 鳶尾花預測:如何創建機器學習Web應用程式?
    同時,利用scikit-learn庫中的隨機森林算法建立分類模型。最後,將該模型應用於預測用戶輸入的數據,並將預測的類標籤返回到三種花卉類型:setosa、versicolor或virginica。此外,該模型還能夠預測概率,從而辨別預測類標籤的相對可信度。
  • Python機器學習5:使用scikit-learn實現三種集成學習Bagging算法
    如果你在解決一個問題時實現了多種模型,但是每個模型的效果都差不多,但是你想要進一步提升最後預測效果,那麼本文將強烈建議你使用集成學習算法來實現!集成學習算法指的是將已有的多種模型綜合起來,實現最終分類或者回歸。一般而言,集成學習可以提高原有算法模型的準確性。
  • 決策樹,回歸樹,自動分類,三種自動化學習方法
    今天介紹我所了解的三種自動化學習方法,分別是autoclassification(自動分類)、decisiontree(決策樹)、classificationlogisticregression(回歸樹)。因為原始數據的類別太多,不能構建直觀的學習模型。
  • 將sklearn訓練速度提升100多倍,美國「返利網」開源sk-dist框架
    這是 Spark 的本機機器學習庫,支持許多與 scikit-learn 相同的算法,用於分類和回歸問題。它還具有樹集合和網格搜索等元估計器,以及對多類問題的支持。雖然這聽起來可能是分配 scikit-learn 模式機器學習工作負載的優秀解決方案,但它的分布式訓練並不能解決我們感興趣的並行性問題。
  • 電子郵件分類的最佳機器學習算法
    我們將使用scikit學習庫中的Gaussian-naivebayes算法對兩位作者的郵件進行分類。下面是你可以在任何python的ide上實現的python代碼,確保你的系統上安裝了所需的庫。支持向量機支持向量機也是一種用於分類、回歸和異常檢測的有監督學習。通過一個平面將數據點劃分為兩類,利用SVM算法將數據點分類為2類。SVM具有一個直接的決策邊界。SVM算法具有通用性,可為決策函數指定不同的核函數。SVM算法是基於超平面的兩類分離,間隔越大,分類越好(也稱為間隔最大化)。
  • 機器學習入門案例:鳶尾花數據集分類 繪製PR曲線
    案例使用鳶尾花數據集進行分類預測,並繪製評價分類性能的PR曲線圖 認識分類任務和數據集 Iris(鳶尾花)數據集