数据建模——模型融合
生活随笔
收集整理的這篇文章主要介紹了
数据建模——模型融合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據建模——模型融合
在建模預測過程中,使用單模型的得到的預測準確率及auc值可能不是很高,這時候我們可以使用模型融合的辦法,將多個模型進行融合,從而提升模型效果,本篇使用的方法為投票法策略。
除此之外,模型融合的辦法還有平均法以及學習法/Stacking
一、軟投票與硬投票
軟投票:用各自分類器的概率值進行加權平均
硬投票:使用預測分類概率高的,少數服從多數
二、使用步驟
1.軟投票
代碼如下(示例):
from sklearn.ensemble import RandomForestClassifier, VotingClassifier from sklearn.linear_model import LogisticRegression from sklearn.svm import SVClog_clf = LogisticRegression(random_state=42) rnd_clf = RandomForestClassifier(random_state=42) svm_clf = SVC(probability = True,random_state=42)voting_clf = VotingClassifier(estimators =[('lr',log_clf),('rf',rnd_clf),('svc',svm_clf)],voting='soft') voting_clf.fit(X_train,y_train) from sklearn.metrics import accuracy_score for clf in (log_clf,rnd_clf,svm_clf,voting_clf):clf.fit(X_train,y_train)y_pred = clf.predict(X_test)print (clf.__class__.__name__,accuracy_score(y_test,y_pred)) # 分類器名稱、準確率2.硬投票
代碼如下(示例):
from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import VotingClassifier # 投票分類器 from sklearn.linear_model import LogisticRegression from sklearn.svm import SVClog_clf = LogisticRegression(random_state=42) rnd_clf = DecisionTreeClassifier(random_state=42) svm_clf = SVC(random_state=42) # 投票 參數估計 voting_clf = VotingClassifier(estimators =[('lr',log_clf),('rf',rnd_clf),('svc',svm_clf)],voting='hard') voting_clf.fit(X_train,y_train) from sklearn.metrics import accuracy_score # 導入準確率 for clf in (log_clf,rnd_clf,svm_clf,voting_clf):clf.fit(X_train,y_train)y_pred = clf.predict(X_test)print (clf.__class__.__name__,accuracy_score(y_test,y_pred))總結
提示:這里對文章進行總結:
對于模型融合過程中,使用的各個分類器的參數均為默認參數,如實際效果不好,可使用手動調參。
總結
以上是生活随笔為你收集整理的数据建模——模型融合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAN、RS485总线中120欧姆终端电
- 下一篇: 用LaTeX写学校论文的模板(三)一些设