Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹算法的分類預(yù)測(cè)篇
一、決策樹的特點(diǎn)
1.優(yōu)點(diǎn)
- 具有很好的解釋性,模型可以生成可以理解的規(guī)則。
- 可以發(fā)現(xiàn)特征的重要程度。
- 模型的計(jì)算復(fù)雜度較低。
2.缺點(diǎn)
- 模型容易過擬合,需要采用減枝技術(shù)處理。
- 不能很好利用連續(xù)型特征。
- 預(yù)測(cè)能力有限,無法達(dá)到其他強(qiáng)監(jiān)督模型效果。
- 方差較高,數(shù)據(jù)分布的輕微改變很容易造成樹結(jié)構(gòu)完全不同。
二、決策樹的適用場(chǎng)景
- 決策樹模型多用于處理自變量與因變量是非線性的關(guān)系。
- 梯度提升樹(GBDT),XGBoost以及LightGBM等先進(jìn)的集成模型均采用決策樹作為基模型。(多粒度聯(lián)森林模型)
- 決策樹在一些明確需要可解釋性或者提取分類規(guī)則的場(chǎng)景中被廣泛應(yīng)用。在醫(yī)療輔助系統(tǒng)中為了方便專業(yè)人員發(fā)現(xiàn)錯(cuò)誤,常常將決策樹算法用于輔助病癥檢測(cè)。
三、demo
#%%demo ## 基礎(chǔ)函數(shù)庫導(dǎo)入 import numpy as np ## 導(dǎo)入畫圖庫 import matplotlib.pyplot as plt import seaborn as sns ## 導(dǎo)入決策樹模型函數(shù) from sklearn.tree import DecisionTreeClassifier from sklearn import tree import pydotplus from IPython.display import Image ##Demo演示DecisionTree分類 ## 構(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)用決策樹回歸模型 tree_clf = DecisionTreeClassifier() ## 調(diào)用決策樹模型擬合構(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() ## 可視化決策樹 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)練集決策樹
明天繼續(xù),還有一個(gè)決策樹在真實(shí)數(shù)據(jù)集上的應(yīng)用,明天出。先搞課題~
到此這篇關(guān)于Python機(jī)器學(xué)習(xí)應(yīng)用之基于決策樹算法的分類預(yù)測(cè)篇的文章就介紹到這了,更多相關(guān)Python 決策樹算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python腳本按照當(dāng)前日期創(chuàng)建多級(jí)目錄
今天小編就為大家分享一篇關(guān)于Python腳本按照當(dāng)前日期創(chuàng)建多級(jí)目錄,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03Python之——生成動(dòng)態(tài)路由軌跡圖的實(shí)例
今天小編就為大家分享一篇Python之——生成動(dòng)態(tài)路由軌跡圖的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python使用Selenium WebDriver的入門介紹及安裝教程(最新推薦)
這篇文章主要介紹了Python使用Selenium WebDriver的入門介紹及安裝教程,本文使用環(huán)境為python3.11+win10 64位+firefox瀏覽器,所以本文使用的瀏覽器驅(qū)動(dòng)是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那么選擇自己對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)程序即可,需要的朋友可以參考下2023-04-04Python中生成一個(gè)指定長度的隨機(jī)字符串實(shí)現(xiàn)示例
這篇文章主要介紹了Python中生成一個(gè)指定長度的隨機(jī)字符串,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11python實(shí)現(xiàn)類似ftp傳輸文件的網(wǎng)絡(luò)程序示例
這篇文章主要介紹了python實(shí)現(xiàn)類似ftp傳輸文件的網(wǎng)絡(luò)程序示例,需要的朋友可以參考下2014-04-04Python + Requests + Unittest接口自動(dòng)化測(cè)試實(shí)例分析
這篇文章主要介紹了Python + Requests + Unittest接口自動(dòng)化測(cè)試,結(jié)合具體實(shí)例形式分析了Python使用Requests與Unittest模塊實(shí)現(xiàn)接口自動(dòng)化測(cè)試相關(guān)操作技巧,需要的朋友可以參考下2019-12-12