1. 程式人生 > 其它 >機器學習sklearn(三十二):演算法例項(一)分類(一)分類決策樹(一)簡介

機器學習sklearn(三十二):演算法例項(一)分類(一)分類決策樹(一)簡介

1 概述 1.1 決策樹是如何工作的   決策樹(Decision Tree)是一種非引數的有監督學習方法,它能夠從一系列有特徵和標籤的資料中總結出決策規則,並用樹狀圖的結構來呈現這些規則,以解決分類和迴歸問題。決策樹演算法容易理解,適用各種資料,在解決各種問題時都有良好表現,尤其是以樹模型為核心的各種整合演算法,在各個行業和領域都有廣泛的應用。   我們來簡單瞭解一下決策樹是如何工作的。決策樹演算法的本質是一種圖結構,我們只需要問一系列問題就可以對資料進行分類了。比如說,來看看下面這組資料集,這是一系列已知物種以及所屬類別的資料: 我們現在的目標是,將動物們分為哺乳類和非哺乳類。那根據已經收集到的資料,決策樹演算法為我們算出了下面的 這棵決策樹:   假如我們現在發現了一種新物種Python,它是冷血動物,體表帶鱗片,並且不是胎生,我們就可以通過這棵決策樹來判斷它的所屬類別。   可以看出,在這個決策過程中,我們一直在對記錄的特徵進行提問。最初的問題所在的地方叫做根節點,在得到結論前的每一個問題都是中間節點,而得到的每一個結論(動物的類別)都叫做葉子節點。 決策樹演算法的核心是要解決兩個問題: 1)如何從資料表中找出最佳節點和最佳分枝? 2)如何讓決策樹停止生長,防止過擬合?   幾乎所有決策樹有關的模型調整方法,都圍繞這兩個問題展開。這兩個問題背後的原理十分複雜,我們會在講解模型引數和屬性的時候為大家簡單解釋涉及到的部分。在這門課中,我會盡量避免讓大家太過深入到決策樹複雜的原理和數學公式中(儘管決策樹的原理相比其他高階的演算法來說是非常簡單了),這門課會專注於實踐和應用。如果大家希望理解更深入的細節,建議大家在聽這門課之前還是先去閱讀和學習一下決策樹的原理。 1.2 sklearn中的決策樹   模組sklearn.tree sklearn中決策樹的類都在”tree“這個模組之下。這個模組總共包含五個類: sklearn的基本建模流程 在那之前,我們先來了解一下sklearn建模的基本流程。 在這個流程下,分類樹對應的程式碼是:
from
sklearn import tree #匯入需要的模組 clf = tree.DecisionTreeClassifier() #例項化 clf = clf.fit(X_train,y_train) #用訓練集資料訓練模型 result = clf.score(X_test,y_test) #匯入測試集,從介面中呼叫需要的資訊