应用场景

推荐系统:分析购买某类商品的潜在因素,判断该类商品的购买概率。挑选购买过的人群A和未购买的人群B,获取两组人群不同的用户画像和行为特征数据。建立用户行为模型、商品推荐模型实现产品的自动推荐。

公式

对于二分类问题,给定训练集{(x1, y1), …, xn,yn)},其中xi表示第i个用户的p维特征,yi∈{0,1}表示第i个用户是否购买过该商品。

模型满足二项式分布:
P(yi∣xi)=u(xi)y(1−u(xi))(1−yi)P(y_{i}|x_{i})=u(x_{i})^y(1-u(x_{i}))^{(1-y_{i})}P(yi​∣xi​)=u(xi​)y(1−u(xi​))(1−yi​)
u(xi)=11+(e−xiTθ)u(x_i)=\tfrac{1}{1+(e^{-x_i^T\theta})}u(xi​)=1+(e−xiT​θ)1​
其中,θ为模型参数,包含该商品的偏置项。
通过最大似然估计来求解:
L=P(y1,...,yn∣x1,...,xn;θ)=∏i=1nP(yi∣xi;θ)=∏i=1nu(xi)yi(1−u(xi)1−yi)L=P(y_1,...,y_n|x_1,...,x_n;\theta) =\prod_{i=1}^{n}P(y_i|x_i;\theta) =\prod_{i=1}^{n}u(x_i)^{y_i}(1-u(x_i)^{1-y_i}) L=P(y1​,...,yn​∣x1​,...,xn​;θ)=i=1∏n​P(yi​∣xi​;θ)=i=1∏n​u(xi​)yi​(1−u(xi​)1−yi​)
进一步可以得到负对数似然函数:
L(θ)=−logP(y1,...,yn∣x1,...,xn;θ,b)=−∑in((yilogu(xi))+(1−yi)log(1−u(xi)))L(\theta)=-logP(y_1,...,y_n|x_1,...,x_n;\theta,b) =-\sum_{i}^{n}((y_ilogu(x_i))+(1-y_i)log(1-u(x_i))) L(θ)=−logP(y1​,...,yn​∣x1​,...,xn​;θ,b)=−i∑n​((yi​logu(xi​))+(1−yi​)log(1−u(xi​)))
采用随机梯度下降法来求解数值:
θ=argminθ∑in(yilogu(xi)+(1−yi)log(1−u(xi)))\theta=argmin_{\theta}\sum_{i}^{n}(y_ilogu(x_i)+(1-y_i)log(1-u(x_i))) θ=argminθ​i∑n​(yi​logu(xi​)+(1−yi​)log(1−u(xi​)))
对参数θ求导得到:
∂L∂θ=∑in(g(xiTθ)−yi)xi\frac{\partial L}{\partial \theta}=\sum_{i}^{n}(g(x_i^T\theta)-y_i)x_i ∂θ∂L​=i∑n​(g(xiT​θ)−yi​)xi​
g(x)=11−e−xg(x)=\tfrac{1}{1-e^{-x}} g(x)=1−e−x1​
进一步可以得到:
θt+1=θt−ρ(g(xiTθ)−yi)xi\theta^{t+1}=\theta^{t}-\rho (g(x_i^T\theta)-y_i)x_i θt+1=θt−ρ(g(xiT​θ)−yi​)xi​
其中,0<ρ<1是步长参数。

代码实现

损失函数的定义,正则化防止过拟合
loss=−1m[∑i=1m(yilog(uθ(xi))+(1−yi)log(1−uθ(xi)))]+λ12m∑j=1nθj2loss=-\tfrac{1}{m}[\sum_{i=1}^{m}(y_ilog(u_\theta(x_i))+(1-y_i)log(1-u_\theta(x_i)))]+\lambda\tfrac{1}{2m}\sum_{j=1}^{n}\theta_j^2 loss=−m1​[i=1∑m​(yi​log(uθ​(xi​))+(1−yi​)log(1−uθ​(xi​)))]+λ2m1​j=1∑n​θj2​

import random
import numpy as np
class LogisticRegression(object) :def __init__(self, x, y, lr=0.0005, lam=0.1):'''x: features of examplesy: label of exampleslr: learning ratelambda: penality on theta'''self.x = xself.y = yself.lr = lrself.lam = lamn = self.x.shapeself.theta = np.array ([0.0] * (n + 1))def _sigmoid (self , x) :z = 1.0/(1.0 + np.exp((-1) * x))return zdef loss_function (self):u = self._sigmoid(np.dot(self.x, self.theta)) # u(xi)c1 = (-1) * self.y * np.log (u)c2 = (1.0 - self.y) * np.log(1.0 - u)# 计算交叉熵 L(θ)求均值loss = np.average(sum(c1 - c2) + 0.5 * self.lam * sum(self.theta[1:] ** 2))return lossdef _gradient(self, iterations) :# m是样本数, p是特征数m, p = self.x.shapefor i in range(0, iterations):u = self._sigmoid(np.dot(self.x, self.theta))diff = self.theta - self.yfor _ in range(0, p):self.theta[_]= self.theta[_] - self.lr * (1.0 / m) * (sum(diff * self.x [:, _]) + self.lam * m * self.theta[_])cost= self.loss_function()def run(self, iteration):self. _gradient(iteration)def predict(self, x):preds = self._sigmoid(np.dot(x, self.theta))np.putmask (preds, preds >= 0.5, 1.0)np.putmask (preds, preds < 0.5, 0.0)return preds

参考文献

《推荐系统与深度学习》黄昕等

【机器学习】逻辑回归模型相关推荐

  1. 机器学习--逻辑回归模型(Logistic Regression)

    1.逻辑回归 逻辑回归(Logistic Regression)是一种用于二元分类问题的机器学习算法.逻辑回归的目的是基于输入特征预测一个样本属于某个特定的类别的概率. 逻辑回归的核心思想是将线性回归 ...

  2. 机器学习第四章之逻辑回归模型

    逻辑回归模型 4.1 逻辑回归模型算法原理 4.1.1 逻辑回归模型的数学原理(了解) 4.1.2 逻辑回归模型的代码实现(重要) 4.1.3 逻辑回归模型的深入理解 4.2 案例实战 - 股票客户流 ...

  3. 机器学习系列7 基于Python的Scikit-learn库构建逻辑回归模型

    课前测验 本文所用数据免费下载 在本文中,你将学习: 0 用于数据可视化的新库 1 逻辑回归原理及技术 目录 一.内容介绍 二.理论知识 1.分类与回归的区别 2.逻辑回归与其他回归的区别 3.逻辑回 ...

  4. 【机器学习笔记4】逻辑回归模型

    目录 什么是逻辑回归? Sigmoid函数 决策边界 逻辑回归的损失函数 为什么平方误差模型不可行? 对数损失函数 单个样例损失: 整体损失函数 梯度下降算法 补充:F1-score评价指标 F1-S ...

  5. 机器学习之逻辑回归模型

    文章目录 分类思想 逻辑回归模型公式 公式推导 sigmoid函数 避免过拟合 降低模型复杂度 加入L1/L2正则项 正则化的作用 增加训练数据 使用逻辑回归模型进行多分类的几种方式 One vs O ...

  6. 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)

    目录 1 LR 1.1 直观表述 1.2 决策边界(Decision Boundary) 2. 权值求解 2.1 代价函数(似然函数) 2.1.1 为什么损失函数不用最小二乘?即逻辑斯蒂回归损失函数为 ...

  7. 机器学习入门|快速掌握逻辑回归模型

    http://blog.itpub.net/29829936/viewspace-2558236/ 2019-01-14 17:30:19 主要内容: 一.逻辑回归的原理 二.极大似然估计 三.逻辑回 ...

  8. NO.62——100天机器学习实践第五天:用逻辑回归模型分析信用卡欺诈案例

    import pandas as pd import matplotlib.pyplot as plt import numpy as np%matplotlib inline #分类计数 count ...

  9. 从原理到代码,轻松深入逻辑回归模型!

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) [导语]学习逻辑回归模型,今天的内容轻松带你从0到100!阿里巴巴达摩院算法专家.阿里巴巴技术发展专家.阿里巴巴数据架构师联合 ...

  10. 逻辑回归模型(Logistic Regression, LR)基础

    逻辑回归模型(Logistic Regression, LR)基础 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数, ...

最新文章

  1. 根据双眼的坐标对齐人脸Python实现
  2. 页面生成周期中的两个Application池的详情小弟了解
  3. 卷积核个数和输入输出通道数的关系
  4. 单例模式(singleton)解析例子
  5. 从代码内部:骆驼路由引擎第一部分
  6. 迷雾世界无限号服务器,迷雾世界部分服务器互通公告_迷雾世界部分服务器3月31日数据互通详情分析_手心游戏...
  7. js的client、scroll、offset详解与兼容性
  8. Java 读取某个目录下所有文件、文件夹
  9. Datawhale 零基础入门数据挖掘-Task5 模型融合
  10. hashmap扩容_面试官问:HashMap在并发情况下为什么造成死循环?一脸懵
  11. java xss 参数_JAVA 重写HttpServletRequest的获取参数防止xss攻击
  12. Mac上有没有好用的WiFi无线网络管理工具?看这里
  13. 初学者如何选择网络仿真软件
  14. (PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
  15. Lake Shore Cernox低温温度传感器之温度探头
  16. 率土之滨鸿蒙团,【率土之滨】无需“垒实”也能鏖战全场!群吕布混编弓解析...
  17. iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路
  18. 恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记4——ADC
  19. 容器(Container)
  20. caplusDB君 · 行业新闻汇编(12月25号)

热门文章

  1. 为什么需要超过48k的采样音频?
  2. Linux 块设备,Block Layer层架构演变
  3. rocketmq存储结构_RocketMQ消息存储
  4. 计算机谈音乐薛之谦,明星浮世绘之薛之谦:分析了50多首音乐作品,为其总结了五个特点...
  5. 大数据技术 思维导图
  6. LeetCode MySQL 612. 平面上的最近距离
  7. LeetCode 1472. 设计浏览器历史记录(双栈)
  8. LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)
  9. 程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)
  10. LeetCode 542. 01 矩阵(BFS DP)