针对分类问题,在简单方法中常用到投票法(Voting)。在不改变模型的情况下,直接对各个不同的模型预测结果进行投票,sklearn库中的VotingClassifier是投票法的实现。 投票法的输出有两种类型:一种是直接输出类标签,另外一种是输出类概率。使用前者进行投票为hard voting,使用后者进行分类叫做soft voting,通过voting参数进行控制。
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
c1 = LogisticRegression(random_state=1)
c2 = RandomForestClassifier(random_state=1)
c3 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=4, min_child_weight=2,
subsample=0.7,objective='binary:logistic')
vc = VotingClassifier(estimators=[('lr', c1), ('rf', c2), ('xgb', c3)])
vc = vc .fit(x_train,y_train)
print(vc.predict(x_test))
在VotingClassifier中加入参数 voting=‘soft’, weights=[2, 1, 1],weights用于调节基模型的权重
from xgboost import X