如何在Python中使用CTR作为因变量构建Logistic回归模型?
解决Logistic回归预测CTR的错误及建模方案
错误原因
你遇到的ValueError: Unknown label type: 'continuous',本质是用了连续数值型的CTR作为Logistic回归的因变量。Logistic回归是二元分类模型,只能接受0/1这样的二元标签(代表事件发生/不发生),而CTR是点击量/曝光量的比值,属于连续变量,不符合模型要求。
正确建模思路
Logistic回归的核心是预测单个曝光的点击概率(这个概率的期望就是CTR),所以要从原始点击/曝光数据入手,两种可行方案:
方案1:拆分单个曝光为样本(最标准)
把每一次曝光都作为独立样本,因变量设为1(该次曝光被点击)或0(未被点击),自变量保留广告位置、创意类型等特征。
比如一条数据是「曝光100次,点击5次」,就拆成100个样本:5个样本的y=1,95个样本的y=0,每个样本的特征和原数据一致。
代码示例:
from sklearn.linear_model import LogisticRegression import pandas as pd # 假设你的原始聚合数据 data = pd.DataFrame({ 'ad_position': [1, 2, 1, 3], 'creative_type': [0, 1, 1, 0], 'clicks': [5, 3, 8, 2], 'impressions': [100, 80, 150, 60] }) # 拆分每个曝光为单独样本 expanded_rows = [] for _, row in data.iterrows(): # 添加点击样本 expanded_rows.extend([{ 'ad_position': row['ad_position'], 'creative_type': row['creative_type'], 'clicked': 1 }] * row['clicks']) # 添加未点击样本 expanded_rows.extend([{ 'ad_position': row['ad_position'], 'creative_type': row['creative_type'], 'clicked': 0 }] * (row['impressions'] - row['clicks'])) expanded_df = pd.DataFrame(expanded_rows) # 训练模型 X = expanded_df[['ad_position', 'creative_type']] y = expanded_df['clicked'] model = LogisticRegression() model.fit(X, y) # 预测单个曝光的点击概率 print(model.predict_proba([[1, 0]])) # 输出格式:[[未点击概率, 点击概率]]
方案2:加权Logistic回归(高效处理聚合数据)
如果曝光量太大,拆分样本会导致内存溢出,可以用加权回归:
- 保留聚合后的每条数据作为样本
- 因变量用该组的CTR(点击量/曝光量)
- 给每个样本设置权重,权重等于该组的曝光量(代表该样本对应多少个原始曝光)
数学上,这种加权方式和拆分样本的结果完全等价,但效率更高。
代码示例:
from sklearn.linear_model import LogisticRegression import pandas as pd data = pd.DataFrame({ 'ad_position': [1, 2, 1, 3], 'creative_type': [0, 1, 1, 0], 'clicks': [5, 3, 8, 2], 'impressions': [100, 80, 150, 60] }) # 构造特征、因变量和权重 X = data[['ad_position', 'creative_type']] y = data['clicks'] / data['impressions'] sample_weights = data['impressions'] # 训练加权模型 model = LogisticRegression() model.fit(X, y, sample_weight=sample_weights) # 预测点击概率 print(model.predict_proba([[1, 0]]))
补充说明
Logistic回归输出的是单条曝光的点击概率,某组广告的CTR就是该组所有曝光点击概率的平均值,不需要直接把CTR当因变量建模。
内容的提问来源于stack exchange,提问作者tomas_530
相关产品推荐
相关产品推荐

