網站首頁 編程語言 正文
決策樹模型
??決策樹(decision tree)是一種基本的分類與回歸方法。
??分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點(node)和有向邊(directed edge)組成。結點有兩種類型:內部結點(internal node)和葉結點(leaf node)。內部結點表示一個特征或屬性,葉結點表示一個類。
??用決策樹分類,從根結點開始,對實例的某一特征進行測試,根據測試結果,將實例分配到其子結點;這時,每一個子結點對應著該特征的一個取值。如此遞歸地對實例進行測試并分配,直至達到葉結點。最后將實例分到葉結點的類中。
?????用于預測一個人是否肥胖或不肥胖的決策樹
決策樹學習
??決策樹學習算法包括3部分:特征選擇、樹的生成和樹的剪枝。常用的算法有ID3、 C4.5和CART。
??1、特征選擇的目的在于選取對訓練數據能夠分類的特征。特征選擇的關鍵是其準則。常用的準則如下:
??(1)樣本集合D對特征A的信息增益(ID3)
??(2)樣本集合D對特征A的信息增益比(C4.5)
??(3)樣本集合D的基尼指數(CART)
??2.決策樹的生成。通常使用信息增益最大、信息增益比最大或基尼指數最小作為特征選擇的準則。決策樹的生成往往通過計算信息增益或其他指標,從根結點開始,遞歸地產生決策樹。這相當于用信息增益或其他準則不斷地選取局部最優的特征,或將訓練集分割為能夠基本正確分類的子集。
?? 3.決策樹的剪枝。由于生成的決策樹存在過擬合問題,需要對它進行剪枝,以簡化學到的決策樹。決策樹的剪枝,往往從已生成的樹上剪掉一些葉結點或葉結點以上的子樹,并將其父結點或根結點作為新的葉結點,從而簡化生成的決策樹。
使用Scikit-learn進行決策樹分類
import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
import matplotlib.pyplot as plt
iris=load_iris()
print(iris.feature_names)
print(iris.target_names)
#劃分數據集
removed =[0,50,100]
new_target = np.delete(iris.target,removed)
new_data = np.delete(iris.data,removed, axis=0)
#訓練分類器
clf = tree.DecisionTreeClassifier() # 定義決策樹分類器
clf=clf.fit(new_data,new_target)
prediction = clf.predict(iris.data[removed])
print("Original Labels",iris.target[removed])
print("Labels Predicted",prediction)
#繪制決策樹
plt.figure(figsize=(15, 10))
tree.plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()
參考鏈接傳送門
原文鏈接:https://blog.csdn.net/weixin_43316082/article/details/126867910
相關推薦
- 2022-05-31 Python?Pyecharts繪制箱線圖詳解_python
- 2022-04-05 react props數據更改傳到方法里進行渲染html,當父組件改變props改變傳入函數參數沒有
- 2022-07-21 H5 開發內嵌頁面跨域問題
- 2022-09-24 C#中參數的傳遞方式詳解_C#教程
- 2022-09-02 React前端框架實現原理的理解_React
- 2022-08-06 Python結合spaCy?進行簡易自然語言處理_python
- 2022-12-10 jquery異常問題Uncaught?TypeError:?$(...).on?is?not?a?f
- 2022-12-19 Pytorch相關知識介紹與應用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支