Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹(shù)算法的分類(lèi)預(yù)測(cè)篇
一、決策樹(shù)的特點(diǎn)
1.優(yōu)點(diǎn)
- 具有很好的解釋性,模型可以生成可以理解的規(guī)則。
- 可以發(fā)現(xiàn)特征的重要程度。
- 模型的計(jì)算復(fù)雜度較低。
2.缺點(diǎn)
- 模型容易過(guò)擬合,需要采用減枝技術(shù)處理。
- 不能很好利用連續(xù)型特征。
- 預(yù)測(cè)能力有限,無(wú)法達(dá)到其他強(qiáng)監(jiān)督模型效果。
- 方差較高,數(shù)據(jù)分布的輕微改變很容易造成樹(shù)結(jié)構(gòu)完全不同。
二、決策樹(shù)的適用場(chǎng)景
- 決策樹(shù)模型多用于處理自變量與因變量是非線(xiàn)性的關(guān)系。
- 梯度提升樹(shù)(GBDT),XGBoost以及LightGBM等先進(jìn)的集成模型均采用決策樹(shù)作為基模型。(多粒度聯(lián)森林模型)
- 決策樹(shù)在一些明確需要可解釋性或者提取分類(lèi)規(guī)則的場(chǎng)景中被廣泛應(yīng)用。在醫(yī)療輔助系統(tǒng)中為了方便專(zhuān)業(yè)人員發(fā)現(xiàn)錯(cuò)誤,常常將決策樹(shù)算法用于輔助病癥檢測(cè)。
三、demo
#%%demo
## 基礎(chǔ)函數(shù)庫(kù)導(dǎo)入
import numpy as np
## 導(dǎo)入畫(huà)圖庫(kù)
import matplotlib.pyplot as plt
import seaborn as sns
## 導(dǎo)入決策樹(shù)模型函數(shù)
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
import pydotplus
from IPython.display import Image
##Demo演示DecisionTree分類(lèi)
## 構(gòu)造數(shù)據(jù)集
x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 1, 0, 1, 0, 1])
## 調(diào)用決策樹(shù)回歸模型
tree_clf = DecisionTreeClassifier()
## 調(diào)用決策樹(shù)模型擬合構(gòu)造的數(shù)據(jù)集
tree_clf = tree_clf.fit(x_fearures, y_label)
## 可視化構(gòu)造的數(shù)據(jù)樣本點(diǎn)
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
plt.show()
## 可視化決策樹(shù)
import graphviz
dot_data = tree.export_graphviz(tree_clf, out_file=None)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("D:\Python\ML\DecisionTree.pdf")
# 模型預(yù)測(cè)
## 創(chuàng)建新樣本
x_fearures_new1 = np.array([[0, -1]])
x_fearures_new2 = np.array([[2, 1]])
## 在訓(xùn)練集和測(cè)試集上分布利用訓(xùn)練好的模型進(jìn)行預(yù)測(cè)
y_label_new1_predict = tree_clf.predict(x_fearures_new1)
y_label_new2_predict = tree_clf.predict(x_fearures_new2)
print('The New point 1 predict class:\n',y_label_new1_predict)
print('The New point 2 predict class:\n',y_label_new2_predict)
運(yùn)行結(jié)果

訓(xùn)練集決策樹(shù)


明天繼續(xù),還有一個(gè)決策樹(shù)在真實(shí)數(shù)據(jù)集上的應(yīng)用,明天出。先搞課題~
到此這篇關(guān)于Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹(shù)算法的分類(lèi)預(yù)測(cè)篇的文章就介紹到這了,更多相關(guān)Python 決策樹(shù)算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3使用requests模塊實(shí)現(xiàn)顯示下載進(jìn)度的方法詳解
這篇文章主要介紹了Python3使用requests模塊實(shí)現(xiàn)顯示下載進(jìn)度的方法,結(jié)合實(shí)例形式分析了Python3中requests模塊的配置、使用及顯示進(jìn)度條類(lèi)的相關(guān)定義方法,需要的朋友可以參考下2019-02-02
pycharm中如何自定義設(shè)置通過(guò)“ctrl+滾輪”進(jìn)行放大和縮小實(shí)現(xiàn)方法
這篇文章主要介紹了pycharm中如何自定義設(shè)置通過(guò)“ctrl+滾輪”進(jìn)行放大和縮小實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Python如何把十進(jìn)制數(shù)轉(zhuǎn)換成ip地址
這篇文章主要介紹了Python如何把十進(jìn)制數(shù)轉(zhuǎn)換成ip地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
pycharm內(nèi)無(wú)法import已安裝的模塊問(wèn)題解決
今天小編就為大家分享一篇pycharm內(nèi)無(wú)法import已安裝的模塊問(wèn)題解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
python中?OpenCV和Pillow處理圖像操作及時(shí)間對(duì)比
這篇文章主要介紹了python中OpenCV和Pillow處理圖像操作及時(shí)間對(duì)比,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析
這篇文章主要介紹了使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python?調(diào)用GPT-3?API實(shí)現(xiàn)過(guò)程詳解
這篇文章主要為大家介紹了Python?調(diào)用GPT-3?API實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

