整合學習是一種機器學習技術,它結合了多個單獨的模型來提高預測效能。整合學習中使用的兩種流行演算法是支援向量機 (SVM) 和決策樹。
什麼是整合學習?
透過合併許多模型(也稱為“基礎學習器”或“弱學習器”),整合學習是一種機器學習方法,可建立更強大的模型(稱為“整合模型”)。整合學習的概念基於這樣一個前提:透過聚合眾多模型的預測,整合模型可能經常優於整合中的任何單個模型。
什麼是決策樹?
決策樹是一種樹狀結構,其中:
- 每個內部節點代表對屬性的“測試”(例如,某個特徵是否大於某個閾值)。
- 每個分支代表測試的結果。
- 每個葉節點代表一個類標籤(在分類中)或一個連續值(在迴歸中)。
什麼是支援向量機?
支援向量機 (SVM) 是用於分類和迴歸任務的監督學習模型。在分類中,支援向量機找到最能區分特徵空間中不同類的超平面。選擇該超平面是為了最大化邊距,即超平面與每個類最近的資料點之間的距離,也稱為支援向量。
如何結合支援向量機(SVM)和決策樹?
以下是如何結合支援向量機 (SVM) 和決策樹的一些常見方法:
- Bagging(引導聚合):這涉及在訓練資料的不同子集上訓練多個 SVM 或決策樹,然後組合它們的預測。這可以減少過度擬合併提高泛化能力。
- Boosting:像 AdaBoost 這樣的演算法可用於順序組合多個 SVM 或決策樹,每個後續模型都會關注前一個模型的錯誤。這可以提高組合模型的整體效能。
- 隨機森林:這種整合方法結合了多個在特徵的隨機子集和樣本上訓練的決策樹。它對於分類和迴歸任務都有效。
- 級聯 SVM:這種方法涉及使用決策樹來預先選擇樣本,然後將這些樣本輸入到單獨的 SVM 分類器中。當資料集很大並且 SVM 訓練的計算成本很高時,這會很有用。
- SVM 作為決策樹的特徵選擇器:使用 SVM 從資料集中選擇最相關的特徵,然後根據所選特徵訓練決策樹。這可以幫助提高決策樹的可解釋性並減少不相關特徵的影響。
- 堆疊:在資料集上分別訓練多個 SVM 和決策樹,然後使用另一個模型(例如線性迴歸或另一個決策樹)來組合它們的預測。這通常可以帶來比任何單個模型更好的效能。
使用決策樹實現支援向量機 (SVM)
在此實現中,我們設定使用帶有支援向量機 (SVM) 和決策樹 (DT) 的投票分類器作為乳腺癌資料集的基本估計器。
1、匯入必要的庫
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import VotingClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
2、載入和分割資料集
載入乳腺癌資料集 |
3、建立基本估計器
- SVC(支援向量分類器):該probability=True引數允許模型預測每個類別的機率,這對於VotingClassifier.
- DecisionTreeClassifier:該分類器建立一個模型,透過學習從資料特徵推斷出的簡單決策規則來預測目標變數的值。每個內部節點代表對屬性的“測試”,每個分支代表測試的結果,每個葉節點代表一個類標籤。在 的背景下VotingClassifier,決策樹充當投票的另一個基本估計器。
建立基本估算器
svm_bc = SVC(probability=True)
dt_bc = DecisionTreeClassifier()
4、整合學習
- VotingClassifier 建立:VotingClassifier使用 來建立estimators=[('svm', svm_bc), ('dt', dt_bc)],指定用於投票的基本估計器列表。該voting='soft'參數列示分類器將使用軟投票,這意味著它根據預測機率之和的 argmax 來預測類標籤。
- 訓練投票分類器:使用訓練資料對物件fit呼叫該方法,並在乳腺癌資料集上訓練分類器。voting_clf_bcX_train_bcy_train_bc
# 建立投票分類器 |
模型評估
- 進行預測:使用測試資料對物件predict呼叫該方法,以對乳腺癌資料集進行預測。voting_clf_bcX_test_bc
- 評估準確性:該accuracy_score函式用於將預測標籤與測試集中的y_pred_bc實際標籤進行比較。y_test_bc然後使用 f 字串格式將準確性列印到控制檯。
# 進行預測 |
輸出:Accuracy on breast cancer dataset: 0.9385964912280702