百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

CTR中xgboost/gbdt +lr

bigegpt 2024-09-02 16:31 3 浏览

1. GBDT + LR

from scipy.sparse.construct import hstack 
from sklearn.model_selection import train_test_split 
from sklearn.datasets.svmlight_format import load_svmlight_file 
from sklearn.ensemble.gradient_boosting import GradientBoostingClassifier 
from sklearn.linear_model.logistic import LogisticRegression 
from sklearn.metrics.ranking import roc_auc_score 
from sklearn.preprocessing.data import OneHotEncoder 
import numpy as np 
def gbdt_lr_train(libsvmFileName): 
 # load样本数据 
 X_all, y_all = load_svmlight_file(libsvmFileName) 
 # 训练/测试数据分割 
 X_train, X_test, y_train, y_test = train_test_split(X_all, y_all, test_size = 0.3, random_state = 42) 
 # 定义GBDT模型 
 gbdt = GradientBoostingClassifier(n_estimators=40, max_depth=3, verbose=0,max_features=0.5) 
 # 训练学习 
 gbdt.fit(X_train, y_train)
 # 预测及AUC评测 
 y_pred_gbdt = gbdt.predict_proba(X_test.toarray())[:, 1] 
 gbdt_auc = roc_auc_score(y_test, y_pred_gbdt) 
 print('gbdt auc: %.5f' % gbdt_auc) 
 # lr对原始特征样本模型训练 
 lr = LogisticRegression() 
 lr.fit(X_train, y_train) 
 # 预测及AUC评测 
 y_pred_test = lr.predict_proba(X_test)[:, 1] 
 lr_test_auc = roc_auc_score(y_test, y_pred_test) 
 print('基于原有特征的LR AUC: %.5f' % lr_test_auc) 
 # GBDT编码原有特征 
 X_train_leaves = gbdt.apply(X_train)[:,:,0] 
 X_test_leaves = gbdt.apply(X_test)[:,:,0] 
 # 对所有特征进行ont-hot编码 
 (train_rows, cols) = X_train_leaves.shape 
 gbdtenc = OneHotEncoder() 
 X_trans = gbdtenc.fit_transform(np.concatenate((X_train_leaves, X_test_leaves), axis=0)) 
 # 定义LR模型 
 lr = LogisticRegression() 
 # lr对gbdt特征编码后的样本模型训练 
 lr.fit(X_trans[:train_rows, :], y_train) 
 # 预测及AUC评测 
 y_pred_gbdtlr1 = lr.predict_proba(X_trans[train_rows:, :])[:, 1] 
 gbdt_lr_auc1 = roc_auc_score(y_test, y_pred_gbdtlr1) 
 print('基于GBDT特征编码后的LR AUC: %.5f' % gbdt_lr_auc1) 
 # 定义LR模型 lr = LogisticRegression(n_jobs=-1) 
 # 组合特征 X_train_ext = hstack([X_trans[:train_rows, :], X_train]) 
 X_test_ext = hstack([X_trans[train_rows:, :], X_test]) 
 print(X_train_ext.shape) 
 # lr对组合特征的样本模型训练 
 lr.fit(X_train_ext, y_train)
 # 预测及AUC评测 
 y_pred_gbdtlr2 = lr.predict_proba(X_test_ext)[:, 1] 
 gbdt_lr_auc2 = roc_auc_score(y_test, y_pred_gbdtlr2) 
 print('基于组合特征的LR AUC: %.5f' % gbdt_lr_auc2) 
if __name__ == '__main__': 
 gbdt_lr_train('data/sample_libsvm_data.txt') 

2. XGboost + LR

import xgboost as xgb 
from sklearn.datasets import load_svmlight_file 
from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LogisticRegression 
from sklearn.metrics import roc_curve, auc, roc_auc_score 
from sklearn.externals import joblib 
import numpy as np 
from scipy.sparse import hstack 
from sklearn.preprocessing.data import OneHotEncoder 
def xgboost_lr_train(libsvmFileNameInitial): 
 # load样本数据 
 X_all, y_all = load_svmlight_file(libsvmFileNameInitial) 
 # 训练/测试数据分割 
 X_train, X_test, y_train, y_test = train_test_split(X_all, y_all, test_size = 0.3, random_state = 42)
 # 定义xgb模型 
 xgboost = xgb.XGBClassifier(nthread=4, learning_rate=0.08, n_estimators=50, max_depth=5, gamma=0, subsample=0.9, colsample_bytree=0.5) 
 # 训练xgb学习 
 xgboost.fit(X_train, y_train) 
 # 预测xgb及AUC评测 
 y_pred_test = xgboost.predict_proba(X_test)[:, 1] 
 xgb_test_auc = roc_auc_score(y_test, y_pred_test) 
 print('xgboost test auc: %.5f' % xgb_test_auc) 
 # xgboost编码原有特征 
 X_train_leaves = xgboost.apply(X_train) 
 X_test_leaves = xgboost.apply(X_test) 
 # 合并编码后的训练数据和测试数据 
 All_leaves = np.concatenate((X_train_leaves, X_test_leaves), axis=0) 
 All_leaves = All_leaves.astype(np.int32) 
 # 对所有特征进行ont-hot编码 
 xgbenc = OneHotEncoder() 
 X_trans = xgbenc.fit_transform(All_leaves) 
 (train_rows, cols) = X_train_leaves.shape 
 # 定义LR模型
 lr = LogisticRegression() 
 # lr对xgboost特征编码后的样本模型训练 
 lr.fit(X_trans[:train_rows, :], y_train) 
 # 预测及AUC评测 
 y_pred_xgblr1 = lr.predict_proba(X_trans[train_rows:, :])[:, 1] 
 xgb_lr_auc1 = roc_auc_score(y_test, y_pred_xgblr1) 
 print('基于Xgb特征编码后的LR AUC: %.5f' % xgb_lr_auc1) 
 # 定义LR模型 
 lr = LogisticRegression(n_jobs=-1) 
 # 组合特征 
 X_train_ext = hstack([X_trans[:train_rows, :], X_train]) 
 X_test_ext = hstack([X_trans[train_rows:, :], X_test]) 
 # lr对组合特征的样本模型训练 
 lr.fit(X_train_ext, y_train) 
 # 预测及AUC评测 
 y_pred_xgblr2 = lr.predict_proba(X_test_ext)[:, 1] 
 xgb_lr_auc2 = roc_auc_score(y_test, y_pred_xgblr2) 
 print('基于组合特征的LR AUC: %.5f' % xgb_lr_auc2) 
if __name__ == '__main__': 
 xgboost_lr_train("data/sample_libsvm_data.txt") 

相关推荐

一条命令搞定pip国内镜像源设置(pip install 指定镜像)

玩python的同学想必没有不用pip的吧,pip是python包管理工具,和Nodejs的npm、Java的maven类似,这些依靠开源力量建立起的庞大软件库极大提高了开发的效率,不过默认pytho...

Cadence Allegro在PCB中手动或者自动添加差分对属性

设计PCB过程中,若设计中有差分对信号,则需要将是差分的2个信号设置为差分对,设置差分对有2种方式:手动添加及自动添加一、手动添加差分对:1、点击Setup-Constraints-Constrain...

合亿 Gutab 三防|车载工业平板功能介绍,车载工业平板厂家推荐

在商用车队管理迈向智能化、特种车辆作业追求高效化的今天,车载工业平板早已突破传统“车载导航”的单一功能,成为连接车辆、司机与云端管理的核心枢纽。从物流运输的实时调度中枢,到矿山开采的无人驾驶控制器,再...

「探长分享-黑匣子」本田冠道 2020款

【品牌】探长360汽车黑匣子【产品型号】2TPro【安装车型】本田冠道2020款【功能特点】360全景安全辅助,行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,震动监控,一步标...

「探长分享-黑匣子」奥迪A6L 2019款

【品牌】探长360汽车黑匣子【产品型号】2TPro【安装车型】奥迪A6L2019款【功能特点】360全景安全辅助,行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,震动监控,一步...

探长360全景案例分享:奥迪Q7 2011款360全景效果展示

【品牌】DCT360汽车黑匣子【产品型号】3TPro【安装车型】奥迪Q72011款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小时停...

「探长分享-黑匣子」保时捷Cayenne 2015款

【品牌】探长360汽车黑匣子【产品型号】4TPro【安装车型】保时捷Cayenne2015款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,...

苍蝇再小也是肉,变态电路的大阳巧客S2差点难死大神

这台大阳巧客S2电动四轮车是我家第二台四轮俱全的篷车!哈哈!大阳巧客S2配置4.5Kw永磁同步电机,SVPWM矢量控制正弦波系统,车辆在加速、爬坡上性能有提升,效率高,操控灵敏。这台车前段时间刚更换了...

「探长分享-黑匣子」奥迪Q5L 2020款

360汽车黑匣子【产品型号】4TPro【安装车型】奥迪Q5L2020款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小时停车监控,一秒一...

「探长分享-黑匣子」丰田兰德酷路泽 2016款

【品牌】探长360汽车黑匣子【产品型号】3TPro【安装车型】丰田兰德酷路泽2016款【功能特点】360全景安全辅助,四路行车录像,极致高清摄像头,模拟/数字高清/AHD多种信号格式输出,24小...

驾驶室盲区是酿成重卡事故主因?后视系统:这个锅我不背

小时候家中长辈常常提醒:离大货车远一点!司机根本看不到你!早期的货车可能真的存在驾驶盲区,比如车辆正下方,因驾驶座过高,恰好是司机看不到的视野盲区。而如今的重卡在环视系统上已经非常完善,是否还存在驾驶...

前后双录,360 G580行车记录仪(360行车记录仪g580s)

相信每一位车主都会为爱车安装行车记录仪,行车记录仪的作用不仅能为交通事故还原证据,还能防止碰瓷。传统的单镜头行车记录仪只能拍摄车头方向的行车画面,如果遇到后方车辆故意碰瓷的事故时,没有监控和后摄画面则...

海康威视同轴录像机怎么使用,海康XVR配置说明

海康威视同轴录像机支持模拟、同轴以及数字IP摄像机接入,因此在使用多种类型摄像机、老久监控项目改造等场景广泛使用。首先,新录像机第一次使用需要设置管理密码激活,密码需由8-16位数字、小写字母、大写...

亿道三防2代工业级车载平板电脑震撼登场,农机矿车专用

亿道三防近日推出2024年全新2代车载平板电脑V12R,引领多项技术创新和升级,为农机、矿车等车载领域带来了超越期待与想象的震撼体验。V12R是一款从里到外,性能、功能全线拉满的工业级车载平板电脑!拥...

分析神州十八号返回舱内的摄像机最有可能是什么类型的摄像头

有没有发现,神州十八号返回舱内摄像机的图像虽然清晰度不是很高,但是画面非常干净,没有一点干扰,几乎看不到噪点。图像清晰度不高不太可能是镜头原因,很可能是图像传感器的分辨率比较低的原因,图像传感器分辨率...