GBDT+LR方法学习+算法实践

本文介绍了GBDT(梯度提升决策树)+LR(逻辑回归)的分类模型,详细阐述了GBDT的基本原理,并提供了数据集处理和Python代码实现。结合LR后,模型在准确率和召回率上有显著提升。
摘要由CSDN通过智能技术生成

GBDT(梯度提升决策树)+LR(逻辑回归)方法+python实践


这篇文章记录一下在KDD比赛中大放异彩比肩Deeplearning的分类模型:GBDT+LR,小伙伴们可以读一下2014年facebook的论文,Practical Lessons from Predicting Clicks on Ads at Facebook,需要资源的欢迎评论交流


一、GBDT

GBDT也叫梯度提升决策树,是机器学习里面对对数据分类较好的算法,甚至效果有些情况优于DL。他的用途有很多,即可以用于分类也可以用于回归,最重要的是可以“扩展”特征, 所以这个模型值得大家学习一下。

在这里插入图片描述
GBDT是通过采用加法模型(即基函数的线性组合),以及不断减小训练过程产生的误差来达到将数据分类或者回归的算法,gbdt通过多轮迭代, 每轮迭代会产生一个弱分类器, 每个分类器在上一轮分类器的残差基础上进行训练。gbdt对弱分类器的要求一般是足够简单, 并且低方差高偏差。因为训练的过程是通过降低偏差来不断提高最终分类器的精度。由于上述高偏差和简单的要求,每个分类回归树的深度不会很深。最终的总分类器是将每轮训练得到的弱分类器加权求和得到的(也就是加法模型)。

原理大家可以参考这篇博客

下面是介绍一下数据集以及代码实现部分
数据集包含样本标签0和1,样本特征(连续型N1-N15和分类型C1-C5)
在这里插入图片描述
GBDT由于是分类树或者回归树的性质,对连续变量不需要进行归一化或者标准化的处理,所以只需要对离散特征进行one-hot编码即可作为GBDT的输入。

代码如下:

'''GBDT实现'''

"""导入包"""
import pandas as pd
from sklearn.model_selection import train_test_split
import lightgbm as lgb
from sklearn.metrics import log_loss
from sklearn.metrics import roc_curve, auc  ###计算roc和auc
from sklearn.ensemble import GradientBoostingClassifier
from sklearn import metrics
import gc
from scipy import sparse
import joblib

"""数据读取与预处理"""
path = 'C:/Users/Tunan/Desktop/'
df = pd.read_csv(path + 'DATA_features.csv')
# 简单的数据预处理
# 去掉id列, 把测试集和训练集合并, 填充缺失值
df.drop(['ID'], axis=1, inplace=True)
data = df

"""下面把特征列分开处理"""
continuous_fea = ['N'+str
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值