小白学习CTR推荐算法模型:GBDT+LR

前言

晚上很多内容讲解LGBT+LR的推荐系统,但是很多都讲解的都过于自然,很多都省略了,本文从小白角度来慢慢分析。包括代码分析等等。

问题是什么

CTR全称是click-through rate,中文名叫点击率,它是怎么回事呢?就是给一个样本,这个样本的标签是一个0或者1的值,1表示用户会点击,0表示用户不会点击,数据集中有很多0、1的数据,这些数据用来训练,其实可以看作一个预测的二分类任务。

思路

很多博客都有提到这个思路,大致就是把GBDT选择的叶子节点拿来做one-hot特征,类似在原来基础上再做特征,用于LR的训练,主体是这个思路。接下来会讲解代码部分,大家可以看下实际的代码,代码注释很全,比其他博客的代码要更全一些。

数据集:威斯康辛州乳腺癌数据(适用于分类问题)

这个数据集包含了威斯康辛州记录的569个病人的乳腺癌恶性/良性(1/0)类别型数据(训练目标),以及与之对应的30个维度的生理指标数据;因此这是个非常标准的二类判别数据集,在这里使用load_breast_cancer(return_X_y)来导出数据。

代码

# -*- coding: utf-8 -*-

from scipy.sparse.construct import hstack
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer
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
import lightgbm as lgb
import xgboost as xgb

import warnings
warnings.filterwarnings('ignore')

def xgb_lr_train(df_train,df_test):

    X_train, X_valid, y_train, y_valid = train_test_split(df_train, df_test , test_size=0.3)
    xgboost = xgb.XGBClassifier(nthread=4, learning_rate=0.08, n_estimators=200, max_depth=5, gamma=0, subsample=0.9,
                                colsample_bytree=0.5)
    xgboost.fit(X_train, y_train)
    xgb_valid_auc = roc_auc_score(y_valid, xgboost.predict(X_valid))
    print("XGBoos
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值