糖尿病遗传风险检测挑战赛-权重融合

权重融合

糖尿病遗传风险检测挑战赛
模型融合的内容还挺多的,我只是尝试stacking这种,权重融合也是后期上分的一种手段。
在这里插入图片描述

基于上一篇,调参之后的进行权重融合。

我用的是lightgbm,xgboost,CatBoostRegressor,这三个模型融合的,融合方式用的是LogisticRegression,但是结果比之前差

from mlxtend.classifier import StackingCVClassifier

import lightgbm as lgb
import xgboost as xgb
from catboost import CatBoostRegressor as cat
from sklearn.linear_model import LogisticRegression
from sklearn import preprocessing
from xgboost.sklearn import XGBClassifier as xgb

lbl = preprocessing.LabelEncoder()


train['BMI'] = lbl.fit_transform(train['BMI'].astype(str))#将提示的包含错误数据类型这一列进行转换
train['DBP'] = lbl.fit_transform(train['DBP'].astype(str))#将提示的包含错误数据类型这一列进行转换
train['KFT'] = lbl.fit_transform(train['KFT'].astype(str))#将提示的包含错误数据类型这一列进行转换
train['KYD'] = lbl.fit_transform(train['KYD'].astype(str))#将提示的包含错误数据类型这一列进行转换
train['HST'] = lbl.fit_transform(train['HST'].astype(str))#将提示的包含错误数据类型这一列进行转换

test['BMI'] = lbl.fit_transform(test['BMI'].astype(str))#将提示的包含错误数据类型这一列进行转换
test['DBP'] = lbl.fit_transform(test['DBP'].astype(str))#将提示的包含错误数据类型这一列进行转换
test['KFT'] = lbl.fit_transform(test['KFT'].astype(str))#将提示的包含错误数据类型这一列进行转换
test['KYD'] = lbl.fit_transform(test['KYD'].astype(str))#将提示的包含错误数据类型这一列进行转换
test['HST'] = lbl.fit_transform(test['HST'].astype(str))#将提示的包含错误数据类型这一列进行转换


clf1 = lightgbm.LGBMClassifier(boosting_type='gbdt',  
                objective= 'binary',
                learning_rate= 0.02,
                seed=2020,
                nthread=-1,
                cat_smooth=0,                
                metric= 'auc',
                verbose=-1,
                max_depth=10,
                num_leaves =20, 
                min_data_in_leaf=3,
                min_sum_hessian_in_leaf =3, 
                feature_fraction=0.8,
                bagging_fraction=1,
                bagging_freq = 2,  
                lambda_l1 =0.3,
                lambda_l2=0.4,        
                        )
params = {'learning_rate': 0.2, 'depth': 5, 'l2_leaf_reg': 10, 'bootstrap_type': 'Bernoulli',
                      'od_type': 'Iter', 'od_wait': 50, 'random_seed': 11, 'allow_writing_files': False}

clf2 = cat(iterations=2000, **params)

clf3 = xgb(n_estimators=400, learning_rate=0.05, gamma=0, subsample=0.8, colsample_bytree=0.9, max_depth=7)

lr = LogisticRegression()

sclf = StackingCVClassifier(classifiers=[clf1, clf2,clf3], meta_classifier=lr, cv=5)

sclf.fit(train, train_label)
test_data = sclf.predict(test)

pre_y=pd.DataFrame(test_data)
pre_y

预测结果是一个数组

在这里插入图片描述
把预测结果写入到文件中提交

result=pd.read_csv('./data/test_111.csv')
result['label']=pre_y
result.to_csv('result20.csv',index=False)
result.head()

在这里插入图片描述

权重融合,我只是接触力一点,正在深入了解。

可以看一下这个大佬的博客:

https://zhongqiang.blog.csdn.net/article/details/105012739
权重融合总结:
https://blog.csdn.net/xiayto/article/details/121231051?spm=1001.2014.3001.5502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值