我已經使用兩個分類器(如naivebayes和SMO)訓練和測試了數據。現在我需要使用堆疊將它們結合起來。我需要知道如何執行堆疊,以及應該如何使用我的基本級別分類器和元級別分類器。堆積在數據挖掘中
Q
堆積在數據挖掘中
1
A
回答
2
這聽起來像你想要的是ensemble learning而不是堆疊。在一個集合中,你可以使用兩個分類器來作出決定併合並這些決定。
堆疊是將一個分類器的輸出用作下一個等級的輸入的過程。也就是說,一些分類器的預測是其他分類器的特徵。爲此,您需要重新訓練其中一個模型,並將第一個分類器的輸出作爲輸入。
應使用哪一個分類器,取決於您的具體應用。同樣,如何去做取決於你用什麼系統來訓練這些分類器。
0
要選擇用於堆疊的基礎級分類器,請考慮可能可以在特徵子集或數據子集上學習的各種分類器。例如,您的基級分類器可能是K-NN,隨機森林和樸素貝葉斯。對於元級分類器,我們希望選擇一個能夠基於基本級預測作爲特徵很好地學習的分類器。一個好的候選人是Logistic迴歸。
使用mlxtend圖書館爲例,我們有:
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier
from mlxtend.classifier import StackingClassifier
clf1 = KNeighborsClassifier(n_neighbors=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = GaussianNB()
lr = LogisticRegression()
sclf = StackingClassifier(classifiers=[clf1, clf2, clf3],
meta_classifier=lr)
有關堆疊分類和迴歸量的例子看mlxtend documentation page。
相關問題
- 1. python數據挖掘
- 2. 數據挖掘字符串
- 3. 數據挖掘情況
- 4. 數據挖掘教科書
- 5. 「相似性」數據挖掘
- 6. R數據挖掘語法
- 7. Google數據挖掘工具
- 8. 錯誤(數據挖掘):在挖掘模型中未指定任何案例
- 9. 數據挖掘海量數據
- 10. 在數據挖掘中映射數據的算法
- 11. .net圖挖掘
- 12. Twitter的數據挖掘:分離
- 13. C#的數據挖掘資源
- 14. DMQL數據挖掘查詢語言
- 15. 數據挖掘引擎和框架?
- 16. 3維數據挖掘性能
- 17. 輕鬆挖掘數據庫的工具
- 18. 數據挖掘算法比較
- 19. 與Django的數據挖掘問題
- 20. 數據挖掘庫和許可限制
- 21. 哪種數據挖掘算法最好?
- 22. 數據挖掘模型名稱由DMX
- 23. 什麼是數據挖掘模型?
- 24. 數據挖掘SSE通過集羣K
- 25. SQL Server數據挖掘資源
- 26. 如何文本挖掘特定數據
- 27. 使用Python進行數據挖掘
- 28. 數據挖掘:基於若干意見
- 29. BIDS數據挖掘性能問題
- 30. MySQL查詢與數據挖掘