文章目录

  • 分类思想
  • 逻辑回归模型公式
    • 公式推导
  • sigmoid函数
  • 避免过拟合
    • 降低模型复杂度
    • 加入L1/L2正则项
      • 正则化的作用
    • 增加训练数据
  • 使用逻辑回归模型进行多分类的几种方式
    • One vs One
    • One vs All
  • 代码实现
    • 逻辑回归的梯度下降求解
  • Appendix

分类思想

逻辑回归(Logistic Regression)虽然称为回归,但实际是一个常用的二分类算法,用来表示某件事发生的可能性。分类的思想:将每个样本进行“打分”,然后设置一个阈值(概率),大于该阈值为一个类别,反之另一类别。

逻辑回归模型公式

逻辑回归的z部分类似线性回归,z值是一个连续的值,取值范围为z∈(−∞,+∞)z\in(-\infin,+\infin)z∈(−∞,+∞),将阈值设为0,当z≥0时,样本划为“正类”,当z<0时,样本划为“负类”,这种分类对整改是实数域敏感一致不便于分类。
在z的基础上,套上sigmoid函数(引入非线性映射),将线性回归值域映射至(0,1),来表事件发生的概率。将预测值限制在(0,1),模型曲线在z=0时,十分敏感,在z>>>0 or z<<<0时都不敏感,有助于直观做出列别判断,>0为“正类”,反之为“负类”。
一元线性回归方程:hθ(x)=θ0+θ1x1.多元线性回归方程:hθ(x)=θ0+θ1x1+θ1x2+...+θnxn=∑i=0nθixi=θTx.hθ′(x)=sigmoid(z)=11+e−θTx一元线性回归方程:h_\theta(x) = \theta_0+\theta_1x_1\\.\\ 多元线性回归方程:h_\theta(x) =\theta_0+ \theta_1x_1+\theta_1x_2+...+\theta_nx_n =\textstyle\sum_{i=0}^n\theta_ix_i=\theta^Tx \\. \\ h'_\theta(x)=sigmoid(z)=\frac{1}{1+e^{-\theta^Tx}} 一元线性回归方程:hθ​(x)=θ0​+θ1​x1​.多元线性回归方程:hθ​(x)=θ0​+θ1​x1​+θ1​x2​+...+θn​xn​=∑i=0n​θi​xi​=θTx.hθ′​(x)=sigmoid(z)=1+e−θTx1​

公式推导

似然函数=>求对数=>LR的损失函数=>梯度下降求解参数

- 参数更新公式:对损失函数进行求偏导得到

  • 什么时候迭代停止

  • 模型学习训练的本质
    通过带有n个特征{x1,x2...xnx_1,x_2...x_nx1​,x2​...xn​}的观测样本的拟合参数{θ1,θ2...θn\theta_1,\theta_2...\theta_nθ1​,θ2​...θn​},拟合出参数就得到了z曲线,也就得到了模型的决策边界来进行分类,参数的拟合就是模型训练学习的本质。
    如果z是二元一次函数,则决策边界就是一条直线,将二维平面进行分类划分。训练集不可以定义决策边界,只是负责去拟合参数,尽可能地贴近真实。

sigmoid函数

g(z)=sigmoid(z)=11+e−z,z∈(−∞,+∞),g(z)∈(0,1)g(z)=sigmoid(z)=\frac{1}{1+e^{-z}}, z\in(-\infin,+\infin), g(z)\in(0,1)g(z)=sigmoid(z)=1+e−z1​,z∈(−∞,+∞),g(z)∈(0,1)
sigmoid函数特点:g’=g(1-g)
在这里插入图片描述

避免过拟合

降低模型复杂度

加入L1/L2正则项

对于线性回归模型,使用L1正则化的模型叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)

  • L1正则化指权值向量θ\thetaθ中各个元素的绝对值之后,通常表示为+α∥θ∥1+\alpha\lVert\theta\rVert_1+α∥θ∥1​
  • L2正则化指权值向量θ\thetaθ中各个元素的平方和然后再求平方根之后,通常表示为+α∥θ∥22+\alpha\lVert\theta\rVert_2^{ 2}+α∥θ∥22​

正则化的作用

  • L1正则化可以使得参数稀疏化,即得到的参数是一个稀疏矩阵,可以用于特征选择。
  • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合。
    可参考:

增加训练数据

使用逻辑回归模型进行多分类的几种方式

One vs One

多个类别中抽出2个类别,训练分类器,训练C2kC^{k}_2C2k​个分类器,记录每个分类器的预测结果(投票),取票数多的作为最终类

One vs All

依次选择所有类别中的一个类别作为1,其余均作为0,来训练分类器,最终几个类别得到几个分类器。根据每个分类器对其对应的类别1的概率排序,得到概率最高的类别作为最终预测结果

具体可以参考Appendix

代码实现

逻辑回归的梯度下降求解

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from numpy import exp
from sklearn import datasets
import os
import mathdataX=datasets.load_iris()['data'][0:100]
dataY=datasets.load_iris()['target'][0:100]# sigmoid函数
def sigmoid(X):return 1.0/(1+exp(-X))# 损失函数
def lossFunc(x,y,weights):lossSum=0   # 损失函数for i in range(len(y)):#y估计值=theta0*x0+theta1*x1+theta2*x2,其中,weights=[theta0,theta1,theta2]y_hat=sum(np.dot(x[i,:],weights))#事件发生的概率prob=sigmoid(y_hat)#print(prob)#损失函数lossSum+=-y[i]*np.log(prob)-(1-y[i])*np.log(1-prob) # J(theta)return lossSum/float(len(x))def LR_Descending(x,y,maxstep,esp,alpha):'''@matstep: 最大迭代次数@esp:阈值,当权重差小于阈值时,不再迭代@alpha:学习率'''m,n=x.shapelossList=[]# 初始化权重weights=np.ones((n, 1))for i in range(maxstep):loss = lossFunc(x, y, np.array(weights))lossList.append(loss)y_hat=sigmoid(np.mat(x)*weights) # 矩阵计算err=y_hat-np.mat(y).T # n*1weights_new=weights-alpha*np.mat(x).T*err # 参数更新公式,   alpha*(feature,n)*(n,1)=(feature,1)#print('weightsnew:%s'%weights_new)#print('loss:%s'%+loss)loss_after=lossFunc(x, y, np.array(weights_new))    #print('loss_after:%s'%loss_after)if abs(loss_after-loss)<esp:breakelse:weights=weights_newreturn lossList,np.array(weights),y_hat# 训练
lossList1,weight1,y_hat=LR_Descending(x=dataX,y=dataY,maxstep=1000,esp=0.0001,alpha=0.0001)# 绘图
fig, ax1 = plt.subplots()
ax1.scatter(range(len(lossList1)),lossList1)

Appendix

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

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

  1. 机器学习 | LR逻辑回归模型

    逻辑回归(Logistic Regression,简称LR)名为"回归"却是用来分类工作.在线性数据上表现优异的分类器. 视频教程:第07讲:逻辑回归是线性分类器的佼佼者  LR是 ...

  2. 【机器学习】逻辑回归模型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. idea maven打jar包_Dev 日志 | 如何将 jar 包发布到 Maven 中央仓库
  2. Java后台 自动 翻页查询
  3. 层次聚类python实现_Python机器学习——Agglomerative层次聚类
  4. 新型冠状病毒传染性有多强?何时达到峰值?来看一下数学和统计建模结果
  5. 听说你还不懂哈夫曼树和哈夫曼编码
  6. oracle里查询表的语句,Oracle查询用户所有表的语句
  7. python精通 epub_跟老齐学Python:从入门到精通[azw3+epub+mobi][8.59MB]
  8. Linux 常用的软件包管理器/软件包管理工具详解
  9. SEO网站内容优化的6点干货分享分享-飞鱼SEO
  10. 傅里叶变换、拉普拉斯变换、z变换之间的联系
  11. PyCharm的配置(背景颜色+字体大小+行号+解释器选择等)
  12. [新人向]MySQL和Navicat下载、安装及使用详细教程
  13. 什么是欠拟合现象_欠拟合和过拟合是什么?解决方法总结
  14. 【 西交,西工大,西北大学计算机考研专硕2023详细信息】
  15. 基于 Flex+GoogleMap+PHP 的远程实时数据监测系统
  16. Hi3518ev200:uboot分析
  17. 热力学第二定律的社会学思考
  18. Java学习笔记day05
  19. java 连接chatgpt
  20. 全球30m土地覆盖产品(2010/2015)

热门文章

  1. 坑爹的老板、经理和领导,让人直想爆粗口
  2. 实验4_MapReduce编程初级实践
  3. Java企业开发学习笔记(1.5.1)采用配置方式使用AOP
  4. 虚漠鸿蒙什么意思,五千年智慧积淀的中国哲学!现在的人通常认为,道家思想是老子创...
  5. 手机程序设计,中英文真的要注意.
  6. C for Graphic:卡通头发
  7. Python实现拣货员拣货的时间长短分析
  8. 台式电脑win8系统怎么换成win7?
  9. 跳转指令JNZ(jmp not equal)
  10. 打印一本500页的书本多少钱