Task5--模型融合

本文介绍了模型融合的概念,包括简单加权平均中的平均法和投票法,以及boosting、bagging、stacking等方法。详细讨论了在分类问题中的投票策略,并提供了Python实现示例。通过训练和预测,展示了硬投票法和Stacking融合模型的性能,提出优化建议,如选择简单次级模型和调整交叉验证。
摘要由CSDN通过智能技术生成

模型融合的方法介绍

简单加权平均

平均法(Averaging)(针对回归问题)

平均法分为简单算术平均与加权算术平均法
简单算术平均法:对多个模型预测结果进行平均:在这里插入图片描述
加权算术平均法:对模型的重要度设置不同的权重:在这里插入图片描述

投票法(Voting)(针对分类问题)

投票法指的是:针对分类问题,在基学习器上得到一个投票的分类器,将票数最多的类作为预测的结果
绝对多数投票法:最终结果占投票一半以上
相对多数投票法:最终结果在投票中票数最多
加权投票法:对模型结果的相对重要度设置权重,计算最终结果
硬投票:不区分模型结果的相对重要度,最终投票数最多的类为最终被预测的类
软投票:为不同模型设置不同的权重,区别模型的不同重要度
sklearn中的投票法示例:

from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import VotingClassifier
model1 = LogisticRegression(random_state=2020)
model2 = DecisionTreeClassifier(random_state=2020)
model = VotingClassifier(estimators=[('lr', model1), ('dt', model2)], voting='hard')

boosting/bagging方法

Bagging采用有放回的采样方法选取训练集,进行T轮采样,采集到T个包含m个样本的数据集,从而训练出T个基学习器,最终对这T个基学习器的输出进行结合。
boosting方法:增加了前一个基学习器在训练过程中预测错误样本的权重

stacking/blending方法

堆叠法(Stacking)
利用初始训练数据学习若干基学习器,将这几个学习器的预测结果作为新的训练集,训练新的学习器
针对各个模型的讲解
https://blog.csdn.net/abcdefg90876/article/details/105383890?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161926669516780255245370%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161926669516780255245370&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-4-105383890.first_rank_v2_pc_rank_v29&utm_term=%E7%AE%80%E5%8D%95%E5%8A%A0%E6%9D%83%E8%9E%8D%E5%90%88

代码部分

导入所需包:

import pandas as pd
import numpy as np
from sklearn.metrics import classification_report, f1_score
from sklearn.model_selection import StratifiedKFold, KFold, train_test_split
from sklearn.ensemble import RandomForestClassifier,RandomForestRegressor
from sklearn.ensemble import VotingClassifier
import lightgbm as lgb
from sklearn.linear_model import LogisticRegression
数据转换,处理Dataframe的内存
'''
数据转换,处理大数据节省内存
'''
def reduce_mem_usage(df):
    start_mem = df.memory_usage().sum() / 1024 ** 2
    print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))
    for col in df.columns:
        col_type = df[col].dtype
        
        if col_type != object:
            c_min = df[col].min()
            c_max = df[col].max()
            if str(col_type)[: 3] == 
### 回答1: MA-PINet 网络模型是基于多智能体系统的关系网络模型,主要用于解决图像处理中的图像分割任务,包括语义分割和实例分割。该模型通过对多智能体系统中智能体之间的相互作用进行建模,实现了对图像中不同部分的划分。 ### 回答2: MA-PINet是一种用于深度学习的网络模型,其名称均来自于英文单词。M代表多任务(Multi-Task),A代表注意力(Attention),P代表图像分割(Segmentation),I代表实例分割(Instance Segmentation),Net代表网络(Network)。 MA-PINet的设计目标是同时处理多个任务,并且能够自动学习图像中不同目标的特征表示。这种网络模型结合了多任务学习和注意力机制以及分割技术,使其在目标识别、图像分割以及实例分割等任务中具有出色的性能。 首先,在多任务学习方面,MA-PINet可以同时处理多个任务,例如目标识别、图像分割和实例分割。通过共享多个任务之间的特征表示和权重参数,使得神经网络能够更好地解决这些任务。这样的设计有助于提高模型的效率和准确性。 其次,MA-PINet中的注意力机制允许模型集中学习目标感兴趣的区域。通过分析图像中不同位置的重要性,可以自动调整模型的关注程度。这意味着模型将更加专注于目标区域,从而提高目标识别和分割的性能。 最后,MA-PINet还利用了图像分割和实例分割技术。图像分割是将图像分成若干个区域的过程,而实例分割则是将每个区域分配给不同的目标实例。这种结合可以更好地理解图像的语义内容,并实现对不同目标实例的准确识别。 总之,MA-PINet是一种多任务、注意力和分割相结合的网络模型,具有处理多个任务和自动学习目标特征的能力。通过将这些技术融合在一起,MA-PINet在目标识别、图像分割和实例分割等任务中具有较高的性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值