LR模型实践

广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR预估早期使用最多的方案是逻辑回归(LR),LR 性能非常高,但是其效果十分依赖于大量的特征工程。但是手动构造许多有用特征费时费力,因此需要有更自动化的方法来发现有效特征并构造组合特征。 2004 年Facebook 在论文 Practical Lessons from Predicting Clicks on Ads at Facebook 中提出的 GBDT + LR 模型给出了一个可行的解决方案。 GBDT + LR 模型 基本思想 GBDT 基于集成学习中的boosting思想,每次迭代都在减少 阅读详情

1、DEMO(可获取函数)
https://blog.youkuaiyun.com/Trisyp/article/details/89318333
https://blog.youkuaiyun.com/weixin_42527994/article/details/110930583(sklearn)
2、predict和predict_proba区别
https://www.easck.com/cos/2020/0628/552525.shtml
3、DEMO实践

import numpy as np
from sklearn.linear_model import LogisticRegression
x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 0, 0, 1, 1, 1])
lr_clf = LogisticRegression()
lr_clf = lr_clf.fit(x_fearures, y_label)
print(lr_clf)
coef=lr_clf.coef_
print(coef)

x_fearures_new = np.array([[1, -1], [2, 3], [1, 1]])
score=lr_clf.predict(x_fearures_new)
print(score)

4、案例

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os  
import sys  
from pyspark.conf import SparkConf
from pyspark.context import SparkContext
from pyspark.sql import HiveContext
from pyspark.sql import SparkSession
from pyspark.sql.functions import concat, concat_ws, collect_list
from pyspark.sql.types import StructField,StringType,StructType
import numpy as np
from sklearn.linear_model import LogisticRegression

print(sys.version)

tx_date = sys.argv[1]
tx_date = tx_date.strip()
print('tx_date: %s' % (tx_date))

sparkConf = SparkConf()

os.environ["PYSPARK_PYTHON"] = "py3.6/bin/python"
os.environ["PYSPARK_DRIVER_PYTHON"] = "py3.6/bin/python"
sparkConf.set("spark.pyspark.python", "py3.6/bin/python")
sparkConf.set("spark.yarn.dist.archives", "hdfs://**/py3.6.zip#py3.6")


sparkConf.set('spark.driver.memory', '20G')
sparkConf.set('spark.driver.cores', '20')
sparkConf.set("spark.kryoserializer.buffer.max", "128m")
sparkConf.set("spark.executor.instances", "100")
sparkConf.set("spark.driver.maxResultSize", '10G')
sparkConf.set("spark.executor.cores", "2")
sparkConf.set("spark.executor.memory", "10G")
sparkConf.set("spark.app.name", 'user_feature_merge')

spark = SparkSession.builder.config(conf=sparkConf).enableHiveSupport().getOrCreate()
tag = []
feature = []
spark.sql('use dmc_ll')
user_feat = spark.sql("""
select b.clicked,a.q3imp,a.q3click,a.q3ctr,a.d3imp,a.d3click,a.d3ctr,a.d15imp,a.d15click,a.d15ctr
from(select split(skuid,':')[1] as item,
if(q3imp is null,0,q3imp) as q3imp,
if(q3click is null,0,q3click) as q3click,
if(q3ctr is null,0,q3ctr) as q3ctr,
if(d3imp is null,0,d3imp) as  d3imp,
if(d3click is null,0,d3click) as d3click,
if(d3ctr is null,0,d3ctr) as d3ctr,
if(d15imp is null,0,d15imp) as d15imp,
if(d15click is null,0,d15click) as d15click,
if(d15ctr is null,0,d15ctr) as d15ctr from dmc_ll.tablea where dt='2021-03-22') a
join(select skuid,if(clicked,1,0) as clicked from dmc_ll.tableb  where dt='2021-03-22') b
on a.item=b.skuid""")

features = []
label = []
for row in user_feat.collect():
    new_row = row.asDict()
    label.append(new_row.pop('clicked'))
    feature = []
    for (k,v) in new_row.items():
        feature.append(v)
    features.append(feature)
lr_clf = LogisticRegression()
lr_clf = lr_clf.fit(features,label)
coef=lr_clf.coef_
for s in coef[0]:
    print('{:.10f}'.format(s))

x_fearures_new = np.array([[3659, 215, 0.05875922383164799, 11, 2, 0.0, 1105, 52, 0.04705882352941176]])
score=lr_clf.predict_proba(x_fearures_new)
print(score)

小知识点:
(1)科学记数法如何转换成数字
‘{:.10f}’.format(s))->10代表小数点后几位
(2)enableHiveSupport()是支持hive函数
(3) Logistic Regression 中的 coef_ 和 intercept_ 的解释
https://blog.youkuaiyun.com/qq_38890412/article/details/108222544
(4)Spark-SQL之DataFrame操作大全
https://blog.youkuaiyun.com/dabokele/article/details/52802150
(5)pyspark.sql.types.row
https://blog.youkuaiyun.com/qq_34615112/article/details/107007391
5、dateframe和RDD区别
https://blog.youkuaiyun.com/linxiyimeng007/article/details/98629640
6、debug小技巧
如果想知道返回数据的类型,用print(type(var))来查看输出的数据类型
在这里插入图片描述

7、机器学习入门书籍
https://dataminingguide.books.yourtion.com

计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 计算广告CTR预估系列(七)–Facebook经典模型LR+GBDT理论与实践 计算广告CTR预估系列(七)–Facebook经典模型LR+GBDT理论与实践 一、介绍 二、评估函数 2.1 Normalized Cross-Entropy(NE) 2.2 Calibration 三、模型架构 3.1 决策树Feature Transforms 3.2 Data freshness 3.... 阅读详情

相关推荐

LR分析法的实现

LR分析法的实现 一、实验目的 实现一个关于表达式的LR语法分析程序,识别用户输入的包含变量与整数的混合算术表达式(不包含减法与除法运算)。 二、实验主要内容 1、文法如下: 0) SE 1) EE+E 2) EE*E 3) E(E) 4) Ei 2、对应的LR分析表如下: 状态 ACTION GOTO + * ( ) i # E 0     S2   S3   1 1 S4 S5       acc   2     S2   S3   6 3 r4 r4   r4   r4   4     S2   S3   7 5     S2   S3   8 6 S4 S5   S9       7 r1 S5   r1   r1   8 r2 r2   r2   r2   9 r3 r3   r3   r3   3、编程运用上述LR分析表,识别从键盘输入的算术表达式。 4、对于语法错误,要指出错误具体信息。

lr模型的训练和预测代码demo

1、模型的训练 # -*- coding: utf-8 -*- import sys from pandas import DataFrame, Series from sklearn.preprocessing import KBinsDiscretizer import numpy as np import math import datetime from sklearn.linear_model import LogisticRegression from sklearn.model_selecti

u010569893的博客 1178

惊呆了!Oracle 11g从入门到放弃的保姆级指南(新手必看)

本文为Oracle 11g数据库新手提供了一份详尽的入门指南。内容涵盖从安装配置、SQL*Plus工具使用、核心的SQL增删改查操作,到事务、索引等进阶概念的解析。文章旨在帮助初学者避开常见陷阱,快速掌握这一经典关系型数据库管理系统的基本操作与核心技能,实现从入门到上手。

ooo22的博客 265

scikit-learn工具包中分类模型predict_proba、predict、decision_function用法详解

在使用sklearn训练完分类模型后,下一步就是要验证一下模型的预测结果,对于分类模型,sklearn中通常提供了predict_proba、predict、decision_function三种方法来展示模型对于输入样本的评判结果。 说明一下,在sklearn中,对于训练好的分类模型,模型都有一个classes_属性,classes_属性中按顺序保存着训练样本的类别标记。下面是使用Logistic Regression分类器在为例,展示一下分类器的classes_属性。 1、先看一下样本标签从0...

胖胖大海的博客 5万+

STM32F407控制舵机

STM32F407控制舵机运行 使用STM32F407控制舵机,首先来看下舵机图片 [黑红白,黑线接GND,红线接VCC,信号线接白色线(有的舵机线的颜色不同,例如褐色红色橘色,仅颜色不同接法还如上述)] 舵机需要信号的周期为20ms,即频率为50Hz。 接下来正式操作: 步骤一:STM32F4程序(本次程序的PWM信号产生的周期频率由定时器TIM14通道1产生(TIM14_CH1),想要使用其它定时器也没关系下面会讲到) #include "pwm.h" void TIM14_CH1_PWM_In

Ievn_Hare的博客 1万+

R语言影像组学实战:从医学图像到预测模型的完整流程(附代码)

本文详细介绍了使用R语言进行影像组学分析的完整实战流程。从环境搭建、数据准备,到医学图像的特征提取与筛选,再到利用机器学习构建预测模型并进行评估,提供了清晰的步骤和可运行的R代码示例,帮助研究者和数据分析师掌握从医学图像到临床预测模型的核心技术。

qsc901234的博客 732

分类模型评价指标:精确率、召回率及P-R曲线、ROC曲线具体实现(附详尽代码)

1.评价指标定义(二分类) 对于二分类问题,可将样例根据其真实类别与学习器预测的类别组合成混淆矩阵。在该矩阵中,矩阵中的行代表样例的真实类别,矩阵中的列代表预测器预测的类别(行和列所代表的可以互相交换)。

读万卷书 行万里路 6751

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

Mr_XiMu的博客 3739

机器学习入门-概率阈值的逻辑回归对准确度和召回率的影响 lr.predict_proba(获得预测样本的概率值)...

1.lr.predict_proba(under_text_x) 获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结果判定来研究概率阈值对结果的影响 从图中我们可以看出,阈值越小,被判为正的越多,即大于阈值的就是为正,但是存在一个很明显的问题就是很多负的也被判为正值。 当阈值很小时,数据的召回...

weixin_33813128的博客 4690

【深度学习】tensorboard中的图片放到论文中

1. 利用tensorboard中的导出数据功能 选中左上角的标签,然后选择csv格式的数据下载即可。 左边的smoothing 数值不影响导出数据的大小。 2.tensorboard 图下标签介绍: 放大 Toggle y-axis log scale:将y轴对数化 Fit domain to data:如果拖动了图片等,再重新回到原始位置 Download Current Chart as SVG 3.用下载下来的csv数据来画图 第一幅图片:训练的平均长度 fig, ax1 = plt.sub

gaocui883的博客 1万+

SAP(ERP)工艺路线(Routing)业务视角解析

工艺路线(Routing)也是PP模块,即生产制造模块中最重要核心主数据之一,也是ERP(SAP)顾问,必需从业务与系统深入掌握的重要主数据,它也是整个生产计划与生产流程的重要基础。因为执行步骤只是操作层面的认知,业务顾问需要从业务本质上去理解它,要真正从业务视角理解工艺路线的业务价值,而不仅仅是操作层面的认知。因此将工艺路线理解为“有以上业务本质的理解,然后进到SAP系统中,就容易理解工艺路线(Routing)的每一组成部分结构与功能了,本质就是理解制造企业如何将设计意图转化为物理现实的编码规则。

m0_45197968的博客 1498

机器学习之LR算法理论和实战(实战篇)

1. python 原生实现 这里的原生实现异常粗糙(没有正则项,随机梯度上升),就是上一篇 原理篇 的代码实现,数据集直接来自sklearn iris(3分类问题),另外,手工提出了0,1两类,仅做了两类iris的分类。 对于(h(X) = w_0 + w_1 x_1 + w_2 x_2 + ... + W_m x_m)=(W^T X) 其中(W =[w_0,w_1,...w_m] , X = [1,x_1,x_2,...,X_m])我习惯于把截距(w_0)也合到向量中去了。 impor...

wjz0626的博客 1492

100天精通Python(爬虫篇)——第118天:selenium自动化操作浏览器基础大总结

一、Selenium框架环境搭建 1. 下载模块 2. 安装浏览器驱动WebDriver 二、基础操作 1. 打开浏览器 2. 无界面模式 3. 元素定位 4. 元素操作 5. 前进后退 6. 执行js 7.页面等待 隐式等待(常用) 显式等待(了解) 三、进阶操作 1. 使用代理ip 2. 修改请求头 3. 隐藏指纹特征.....................

努力让自己发光,对的人才能迎着光而来 10万+

[机器学习] 模型融合GBDT(xgb/lgbm/rf)+LR 的原理及实践

目录 一、原理 GBDT + LR 是什么,用在哪 二、说明 GBDT + LR 的结构 RF + LR ? Xgb + LR? GBDT + LR 模型提升 三、实践 1 如何获得样本落在哪个叶子节点 2 举例 2.2.1 训练集准备 2.2.2 RF+LR 2.2.3 GBDT+LR 2.2.4 Xgboost+LR 2.2.5 单独使用RF, GBDT和Xgbo...

摩登都市天空---专栏 1万+

k8s 不同node之间pod ip不通

底层k8s使用calico网络,ipip网络模式,kubevirt启动了2台虚拟机;在这两台虚拟机上再搭建k8s,calico网络,ipip网络模式。说明:我是使用helm安装的calico,改这个模式要改crd资源ippools。其他方式安装的calico修改方法可能不一样。在虚拟机上的k8s上启动了2个pod,分布在不同的node上,这两个pod不能ping通对方的pod ip。修改虚拟机之上的k8s集群的calico网络的ipipMode为Never即可,之前使用的是Always。

weixin_40548182的博客 4054

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

2014年探索:GBDT+LR组合模型,自动化特征工程与端到端训练实践

FFM模型采用引入特征域的方式增强了模型的特征交叉能力,但无论如何, FFM只能做二阶的特征交叉,如果继续提高特征交叉的维度,会不可避免地产生 组合爆炸和计算复杂度过高的问题。那么,有没有其他方法可以有效地处理高维 特征组合和筛选的问题呢?2014年,Facebook提出了基于GBDT+LR组合模型 的解决方案。GBDT+LR 使用最广泛的场景是CTR点击率预估,即预测当给用户推送的广告会不会被用户点击。

xziyuan的博客 882

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

模型融合—GBDT + LR 理解与实践(附数据 + 代码)

本文转载:广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)

zhong_ddbb的博客 580

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

逻辑回归LR与广义线性模型GLM开发实践

广义线性模型是一种更一般化的回归模型,可以用于处理不同类型的响应变量,如二分类、多分类和连续型变量。总的来说,逻辑回归和广义线性模型是两种常用的机器学习方法,可以用于解决不同类型的分类和回归问题。在开发实践中,需要进行数据预处理、模型训练和评估等步骤,以找到最优的模型配置。通常情况下,逻辑回归的输出是一个介于0和1之间的概率值,可以通过设置一个概率阈值来进行分类。模型训练:使用逻辑回归和广义线性模型的算法进行模型的训练。模型应用:根据训练好的模型,对新的样本进行预测或分类。

m0_67966665的博客 555

隐私计算实训营第二期第6讲逻辑回归LR与广义线性模型GLM开发实践

一阶优化器:SGD参数估计方法和二阶优化器:迭代重加权最小二乘法(IRLS)而在隐语中讲二阶优化器 与 一阶优化器相结合,在训练初期使用二阶优化器进行几轮迭代,然后转为一阶优化器进行快速的收敛。优化器以及任何想要计算的函数都可以被划归为加法和乘法的组合,而在隐语中采用秘密分享(Secret sharing)的方式安全地进行计算。如图可以实现,A,B,C通信三方在不知道对方的秘密值的情况下完成求和(A的秘密值为15,B的秘密值为25,C的秘密值为10,求和为50)乘法中也实现类似的效果。

TianxiaZhu824的博客 788

隐语Secretflow 第6讲:逻辑回归LR与广义线性模型GLM开发实践

GLM将误差项的概率分布扩展为指数分布族:伯努利分布(逻辑回归)、泊松分布、Gamma分布、复合泊松Gamma分布、Tweedie分布等。支持多种模型(伯努利分布、泊松分布、gamma分布、tweedie分布);其假设响应变量Y的真实值由系统组件(system component)和误差组件(error component)组成。法二:通过两步建模间接近似:纯保费 = 索赔次数(泊松分布、负二项分布) * 平均索赔金额 (伽马分布、逆高斯分布)法一:直接对纯保费建模,服从tweedie分布(1,2)

weixin_52114126的博客 1112

隐私计算实训第二期第六课:逻辑回归LR与广义线性模型GLM开发实践

继续学习隐私计算实训营课程

weixin_41467180的博客 1600

【推荐系统】Facebook经典模型GBDT+LR代码实践

如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~ 文章目录一、导库二、处理数据三、构建LR模型四、构建GBDT模型五、构建GBDT+LR融合模型六、评估结果 2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善推荐系统各个知识体系的文章,帮助大家更高效学习。 在CRT预估中,工业界一般是会采用逻辑回归进行处理,对用户特征画像进行建模,然后计算点击概率,评估用户是否会有点击的行为。 但是逻辑回归这个算法天生就会有个缺陷,它不能够区分非线性的数据,.

优快云 精品推荐 1184

【隐语实践】逻辑回归LR与广义线性模型GLM开发实践

响应变量的分布类型支持伯努利分布、泊松分布、gamma分布和Tweedie链接函数Log: 泊松分布、gamma分布和TweedieLogit:伯努利分布tweedie的power值一般范围选择12[1,2]12ppp值根据先验知识得出。优化器选择一阶优化器SGD二阶优化器IRLS也可以采用前几轮IRLS,之后用SGDdist_scale数据方差(先验)这里,对于教程中提到的offset_col和weight_col部分的代码未在v1.6.1b0的component代码中找到。

Rabbit_QL的博客 1017

【隐语笔记6】逻辑回归LR与广义线性模型GLM开发实践

逻辑回归(LR)和广义线性模型(GLM)是统计学和机器学习中的重要工具,广泛用于解决预测和分类问题。逻辑回归专用于二分类问题,而广义线性模型则适用于更广泛的数据分布类型。逻辑回归是广义线性模型的一个特例,用于处理二分类问题,其中响应变量 YYY 遵循二项分布,采用 Logit 链接函数。广义线性模型是一个统计框架,用于描述预测变量和响应变量之间的关系。响应变量的分布属于指数分布族。如果响应变量 YYY 遵循泊松分布,适合的链接函数是自然对数: log⁡(μ)=η \log(\mu) = \eta log(μ

yj1248805281的博客 1562

从LR到MMOE:得物社区推荐精排模型演进与多目标优化实践

推荐系统作为内容分发的核心技术,其核心原理是通过算法模型预测用户对内容的偏好,实现个性化信息匹配。从早期的逻辑回归(LR)模型依赖人工特征工程,到深度因子分解机(DeepFM)自动学习特征交互,技术演进大幅提升了点击率预估的准确性。然而,单一CTR优化易导致“标题党”泛滥,损害用户体验与平台长期价值。为此,多目标建模(如MMOE)成为关键,它能同时优化点击、点赞、收藏、完播率等多个目标,动态权衡短期流量与长期用户满意度。在得物社区等潮流内容平台中,结合序列建模捕捉动态兴趣,并融入多模态内容理解(如视觉美学特

weixin_33402252的博客 1014
上一篇: java中队列的使用
下一篇: mapreduce过程学习
程序猿-日记本
博客等级 码龄10年 204粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值