国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

2021-08-01 00:38Yeoman92 Python

這篇文章主要介紹了Python機器學習算法庫scikit-learn學習之決策樹實現方法,結合實例形式分析了決策樹算法的原理及使用sklearn庫實現決策樹的相關操作技巧,需要的朋友可以參考下

本文實例講述了Python機器學習算法庫scikit-learn學習之決策樹實現方法。分享給大家供大家參考,具體如下:

決策樹

決策樹(DTs)是一種用于分類和回歸的非參數監督學習方法。目標是創建一個模型,通過從數據特性中推導出簡單的決策規則來預測目標變量的值。

例如,在下面的例子中,決策樹通過一組if-then-else決策規則從數據中學習到近似正弦曲線的情況。樹越深,決策規則越復雜,模型也越合適。

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

決策樹的一些優勢是:

  • 便于說明和理解,樹可以可視化表達;
  • 需要很少的數據準備。其他技術通常需要數據標準化,需要創建虛擬變量,并刪除空白值。
  • 使用樹的成本是用于對樹進行訓練的數據點的對數。
  • 能夠處理數值和分類數據。其他技術通常是專門分析只有一種變量的數據集。
  • 能夠處理多輸出問題。
  • 使用白盒模型。如果一個給定的情況在模型中可以觀察到,那么這個條件的解釋很容易用布爾邏輯來解釋。相比之下,在黑盒模型中(例如:在人工神經網絡中,結果可能更難解釋。
  • 可以使用統計測試驗證模型。這樣就可以解釋模型的可靠性。
  • 即使它的假設在某種程度上違反了生成數據的真實模型,也會表現得很好。

決策樹的缺點包括:

  • 決策樹學習可能會生成過于復雜的樹,不能代表普遍的規則,這就稱為過擬合。修剪(目前不支持的)機制,設置葉片節點所需的最小樣本數目或設置樹的最大深度是避免此問題的必要條件。
  • 決策樹可能不穩定,因為數據中的小變化可能導致生成完全不同的樹。這個問題通過在一個集合中使用多個決策樹來減輕。
  • 實際的決策樹學習算法是基于啟發式算法的,例如在每個節點上進行局部最優決策的貪婪算法。這種算法不能保證返回全局最優決策樹。通過在集合學習者中訓練多個樹,可以減少這種情況,在這里,特征和樣本是隨機抽取的。
  • 有些概念很難學習,因為決策樹無法很容易地表達它們,例如XOR、奇偶性或多路復用問題。

分類

決策樹分類器(DecisionTreeClassifier)是一個能夠在數據集上執行多類分類的類。

與其他分類器一樣,決策樹分類器以輸入兩個數組作為輸入:數組X,稀疏或密集,[n_samples,n_features]保存訓練樣本,以及數組Y的整數值,[n_samples],保存訓練樣本的類標簽:

  1. >>> from sklearn import tree
  2. >>> X = [[0, 0], [1, 1]]
  3. >>> Y = [0, 1]
  4. >>> clf = tree.DecisionTreeClassifier()
  5. >>> clf = clf.fit(X, Y)

模型可以用來預測樣本的類別:

  1. >>> clf.predict([[2., 2.]])
  2. array([1])

或者,可以預測每個類的概率,在葉片上同一類的訓練樣本的分數

  1. >>> clf.predict_proba([[2., 2.]])
  2. array([[ 0., 1.]])

DecisionTreeClassifier可以同時進行二進制(其中標簽為[- 1,1])分類和多類(標簽為[0],……,k - 1])分類。

使用虹膜數據集,我們可以構建如下的樹:

  1. >>> from sklearn.datasets import load_iris
  2. >>> from sklearn import tree
  3. >>> iris = load_iris()
  4. >>> clf = tree.DecisionTreeClassifier()
  5. >>> clf = clf.fit(iris.data, iris.target)

訓練之后,我們可以使用export_graphviz  將樹導出為Graphviz格式。下面是一個在整個iris(虹膜)數據集上輸出的樹示例:

  1. >>> with open("iris.dot", 'w') as f:
  2. ... f = tree.export_graphviz(clf, out_file=f)

然后我們可以使用Graphviz的dot工具來創建一個PDF文件(或者任何其他受支持的文件類型):dot -Tpdf iris.dot -o iris.pdf

  1. >>> import os
  2. >>> os.unlink('iris.dot')

或者,如果我們安裝了Python模塊pydotplus,我們可以在Python中直接生成PDF文件(或任何其他受支持的文件類型):

  1. >>> import pydotplus
  2. >>> dot_data = tree.export_graphviz(clf, out_file=None)
  3. >>> graph = pydotplus.graph_from_dot_data(dot_data)
  4. >>> graph.write_pdf("iris.pdf")

export_graphviz exporter 還支持各種各樣的選項,包括根據它們的類(或用于回歸的值)著色節點,如果需要的話,還可以使用顯式變量和類名IPython還可以使用Image()函數來顯示這些情節:

  1. >>> from IPython.display import Image
  2. >>> dot_data = tree.export_graphviz(clf, out_file=None,
  3. feature_names=iris.feature_names,
  4. class_names=iris.target_names,
  5. filled=True, rounded=True,
  6. special_characters=True)
  7. >>> graph = pydotplus.graph_from_dot_data(dot_data)
  8. >>> Image(graph.create_png())

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

模型可以用來預測樣本的類別:

  1. >>> clf.predict(iris.data[:1, :])
  2. array([0])

或者,可以預測每個類的概率,這是同一類在葉子中的訓練樣本的分數:

  1. >>> clf.predict_proba(iris.data[:1, :])
  2. array([[ 1., 0., 0.]])

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

Examples:

Plot the decision surface of a decision tree on the iris dataset

回歸

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

使用決策樹類回歸,決策樹也可以應用于回歸問題。

在分類設置中,fit方法將數組X和y作為參數,只有在這種情況下,y被期望有浮點值而不是整數值:

  1. >>> from sklearn import tree
  2. >>> X = [[0, 0], [2, 2]]
  3. >>> y = [0.5, 2.5]
  4. >>> clf = tree.DecisionTreeRegressor()
  5. >>> clf = clf.fit(X, y)
  6. >>> clf.predict([[1, 1]])
  7. array([ 0.5])

Examples:

Decision Tree Regression

多輸出問題

一個多輸出問題是一個受監督的學習問題,有幾個輸出可以預測,即當Y是一個二維數組[n_samples,n_output]

當輸出之間沒有相關性時,解決這類問題的一個非常簡單的方法是建立n個獨立的模型,即每一個輸出,然后使用這些模型獨立地預測每一個輸出。

然而,因為可能與相同輸入相關的輸出值本身是相關的,通常更好的方法是構建一個能夠同時預測所有n輸出的單一模型。首先,它需要較低的培訓時間,因為只構建了一個估計值。其次,結果估計量的泛化精度通常會增加。

對于決策樹,這種策略可以很容易地用于支持多輸出問題。這需要以下更改:

  • 在葉子中存儲n個輸出值,而不是1;
  • 使用分割標準來計算所有n輸出的平均下降。

這個模塊提供了支持多輸出問題的方法,通過DecisionTreeClassifier 和DecisionTreeRegressor實現這個策略。

如果決策樹符合大小(n_samples,n_output)的輸出數組Y,那么得到的估計值將是:

  • 預測輸出的n_output值;
  • predict_proba上輸出類概率的n_output數組。

多輸出決策樹回歸中顯示了多輸出樹的回歸。在這個例子中,輸入X是一個單一的實際值,輸出Y是X的正弦和余弦。

Python機器學習算法庫scikit-learn學習之決策樹實現方法詳解

Examples:

決策樹多輸出回歸

希望本文所述對大家Python程序設計有所幫助。

原文鏈接:https://blog.csdn.net/Yeoman92/article/details/73436632

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久久久久久久 | 日韩午夜电影 | av网址在线| 福利在线播放 | 欧美大片一区 | 中文国产在线观看 | 黄色片在线免费观看 | 久久性网站 | 山岸逢花在线观看 | 黄视频| 欧美视频一区二区 | 亚洲一区二区精品视频 | 人妖天堂狠狠ts人妖天堂狠狠 | 欧美成人免费在线 | 久久久精品国产 | 狠狠综合久久 | 伊人色爱 | 99在线视频精品 | 婷婷狠狠 | 黑人中文字幕一区二区三区 | 欧美精品一区二区三区四区 | 米奇色网| 欧美狠狠操 | 激情欧美日韩一区二区 | 亚洲 欧美 日韩 丝袜 另类 | 亚洲一区二区在线视频 | 欧美一区亚洲二区 | 久久久久久综合 | 国产精品久久久久久久久久妞妞 | 欧美极品一区二区 | 玖玖精品视频 | 亚洲欧美视频网站 | 午夜在线 | 国产欧美日韩二区 | 一级大毛片 | 成版人性视频 | 伊人3| 国产91精品久久久久 | 成人在线免费视频 | 久久久久久亚洲一区二区三区蜜臀 | 日韩h视频 |