LR(Logistic Regression) & XGBOOST 学习笔记

LR(Logistic Regression) & XGBOOST 在 CTR中的应用

此文将持续更新,欢迎指导交流~

立志要成为一位优秀炼丹师的我搞起 CTR 来突然压力山大。数据是最最主要的原因,而且毕竟调得少,慢慢攒点经验吧。

在 CTR 中,最大的两个问题就是:

  • 数据不均衡。在投放的大量广告中真正转化的样本数量很少。
  • 数据稀疏。每个样本的特征信息都不太全。

LR 和 XGOOST 是 CTR 中常用的两种模型,二者各有优缺点,在 facebook 中使用 XGBOOST(提取特征) + LR(预测) 的方式。GBDT 模型擅长处理连续特征值,而 LR 则擅长处理离散特征值。在 XGBOOST 中,将连续特征值输入 XGBOOST 中,训练好模型以后,得到 K 棵数,每棵树上分别有 n 1 , n 2 , . . . , n K n_1, n_2, ..., n_K n1,n2,

### XGBoost回归预测模型的使用与实现 XGBoost 是一种基于梯度提升决策树(GBDT)算法的机器学习工具,广泛应用于分类回归任务。以下是关于如何使用 XGBoost 构建回归预测模型的具体说明。 #### 安装与导入必要的库 在 Python 中使用 XGBoost 前需先安装 `xgboost` 库。可以通过以下命令完成安装: ```bash pip install xgboost ``` 接着,在代码中引入所需模块: ```python import xgboost as xgb from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error ``` --- #### 数据预处理 为了构建有效的回归模型,需要对数据进行适当处理: 1. **划分训练集与测试集** 利用 `train_test_split` 函数将原始数据划分为训练集测试集。 ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 2. **转换为 DMatrix 格式** XGBoost 的核心功能依赖于其特有的 `DMatrix` 数据结构,因此需要将输入数据转化为该格式。 ```python dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) ``` --- #### 设置超参数 XGBoost 提供多种可调参数来优化模型性能。对于回归任务,常用的参数包括但不限于以下几个方面[^1]: - `objective`: 设定目标函数,通常选择 `"reg:squarederror"` 表示最小化均方误差。 - `max_depth`: 控制每棵树的最大深度,默认值为 6。 - `eta` 或 `learning_rate`: 学习率,控制每次迭代步长大小。 - `n_estimators`: 迭代次数或弱学习器数量。 例如设置如下参数字典: ```python params = { 'objective': 'reg:squarederror', # 回归任务的目标函数 'max_depth': 6, 'eta': 0.1, 'eval_metric': 'rmse' # 使用 RMSE 作为评价指标 } ``` --- #### 模型训练 通过指定参数以及训练轮次 (`num_round`) 来执行模型训练过程。 ```python model = xgb.train(params=params, dtrain=dtrain, num_boost_round=100) ``` 如果希望监控验证集上的表现,则可以加入额外的评估集合选项: ```python watchlist = [(dtrain, 'train'), (dtest, 'eval')] model = xgb.train(params=params, dtrain=dtrain, evals=watchlist, num_boost_round=100) ``` --- #### 性能评估 利用已训练好的模型针对测试样本做出预测,并计算相应的误差衡量标准,比如均方根误差(RMSE)。 ```python y_pred = model.predict(dtest) rmse = np.sqrt(mean_squared_error(y_test, y_pred)) print(f"Test RMSE: {rmse}") ``` --- #### 泊松回归特殊情况 当因变量呈现离散计数值特征时,可以选择泊松分布假设下的回归形式。此时只需调整目标函数至 `"count:poisson"` 即可[^1]: ```python params_poisson = {'objective': 'count:poisson', 'max_depth': 6, 'eta': 0.1, 'eval_metric': 'rmse'} model_poisson = xgb.train(params=params_poisson, dtrain=dtrain, num_boost_round=100) ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值