机器学习之模型融合(Stacking、Blending。。。。)

本文介绍了机器学习中的模型融合技术,包括平均法、投票法、综合方法以及高级的Stacking和Blending。Stacking通过构建多层模型,利用各模型预测结果作为新特征进行训练;Blending则是在部分数据上预估得到新特征,用于剩余数据的预测,提高模型精度。
摘要由CSDN通过智能技术生成

使用介绍

简单快速:平均、投票
全面精准:Stacking、Blending

一、平均:

简单平均法: 简单加权平均,结果直接融合 求多个预测结果的平均值。pre1-pren分别是n组模型预测出来的结果,将其进行加权融

pre = (pre1 + pre2 + pre3 +...+pren )/n

加权平均法: 加权平均法 一般根据之前预测模型的准确率,进行加权融合,将准确性高的模型赋予更高的权重。

pre = 0.3*pre1 + 0.3*pre2 + 0.4*pre3 

二、投票:

少数服从多数原则
在这里插入图片描述

# 简单投票:模型数为奇数,根据少数服从多数来定最终结果
from xgboost import XGBClassifier
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
from sklearn.model_selection import train_test_split
# 以python自带的鸢尾花数据集为例
iris = datasets.load_iris()
# 鸢尾花数据集为三类,去掉第三类,当作二分类数据集
X, y = iris.data[:100, 1:3], iris.target[:100]
# 以默认的0.25作为分割比例进行分割(训练集:测试集=3:1)
x_train,x_test, y_train, y_test = train_test_split(X, y,test_size=0.25,random_state=2023)
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=4, min_child_weight=2, subsample=0.7,objective='binary:logistic')
vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb', clf3)],voting='hard')
vclf = vclf.fit(x_train,y_train)
print(f'准确率:{
     vclf.score(x_test,y_test)}')

三、综合:

排序融合

import warnings
warnings.filterwarnings('ignore')
import itertools
import numpy as np
import
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值