lr(逻辑回归)

author author     2022-10-05     748

关键词:

首先说一下线性回归模型:它试图学得一个通过属性的线性组合来进行预测的函数,即:

h(x) = w0 + w1x1 + w2x2 + ... + wnxn

写成向量形式为:h(x) = wTx

逻辑回归是一种分类算法,本质上是线性回归,它通过引入对数几率函数将线性回归得到的连续值映射到0~1之间,

从而可以用在分类问题上

逻辑回归的预测函数为:

技术分享图片

对于任意确定的x和w,有:

技术分享图片

可以合并写成:

技术分享图片

对P(y|x,w)取极大似然函数:

技术分享图片

取对数似然函数:

(即令每个样本属于其真实类别的概率总和越大越好)

技术分享图片

上面的函数是关于w的凸函数,通过梯度上升法求对数似然函数的极大值(即最大值),

可以得到回归系数的更新方程为:

技术分享图片

 

逻辑回归算法的优缺点:

优点:实现简单,易于理解和实现,计算代价不高,速度很快,存储资源低;

缺点:容易欠拟合,分类精度可能不高;

适用数据类型:数值型和标称型

 

逻辑回归算法的python实现

参考链接:http://blog.csdn.net/moxigandashu/article/details/72779856

 1 #coding=utf-8
 2 
 3 from numpy import *
 4 
 5 # 创建测试数据
 6 def loadDataSet():
 7     dataMat = []; labelMat = []
 8     fr = open(testSet.txt)     # 测试数据的规格:100*3
 9     for line in fr.readlines():
10         lineArr = line.strip().split()     # strip():删除首尾处的空格;split():不带参数时以空格进行分割
11         dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
12         labelMat.append(int(lineArr[2]))
13     return dataMat,labelMat
14 
15 def sigmoid(inX):
16     return 1.0/(1+exp(-inX))
17 
18 # 用梯度上升法求回归系数
19 def gradAscent(dataMatIn, classLabels):
20     dataMatrix = mat(dataMatIn)     #将输入数据转换为矩阵
21     labelMat = mat(classLabels).transpose()     #将分类标签的行向量转换为列向量
22     m,n = shape(dataMatrix)     # 输入数据的规格:100*3
23     alpha = 0.001       #迭代步长
24     maxCycles = 500     #迭代次数
25     weights = ones((n,1))     #权重向量的初始值设为1,列向量
26     for k in range(maxCycles):
27         h = sigmoid(dataMatrix*weights)     #计算预测函数的值
28         error = (labelMat - h)
29         weights = weights + alpha * dataMatrix.transpose()* error     #更新权重向量
30     return weights
31 
32 # 用学习到的回归系数来画出决策边界
33 def plotBestFit(weights):
34     import matplotlib.pyplot as plt
35     dataMat,labelMat=loadDataSet()
36     dataArr = array(dataMat)
37     n = shape(dataArr)[0] 
38     xcord1 = []; ycord1 = []
39     xcord2 = []; ycord2 = []
40     for i in range(n):
41         if int(labelMat[i])== 1:
42             xcord1.append(dataArr[i,1]); ycord1.append(dataArr[i,2])
43         else:
44             xcord2.append(dataArr[i,1]); ycord2.append(dataArr[i,2])
45     fig = plt.figure()
46     ax = fig.add_subplot(111)
47     ax.scatter(xcord1, ycord1, s=30, c=red, marker=s)     # marker=‘s‘:表示用小正方形画点
48     ax.scatter(xcord2, ycord2, s=30, c=green)
49     x = arange(-3.0, 3.0, 0.1)
50     y = (-weights[0,0]-weights[1,0]*x)/weights[2,0]     # 得到最后的预测函数:f(x)=w0 + w1x1 + w2x2,令f(x)=0,得到:x2=(-w0-w1x1)/w2
51     ax.plot(x, y)
52     plt.xlabel(X1); plt.ylabel(X2);
53     plt.show()
54 
55 # 测试逻辑回归算法
56 dataArr,labelMat=loadDataSet()
57 weights=gradAscent(dataArr,labelMat)
58 plotBestFit(weights)

 

 测试的分类结果:

技术分享图片

 


逻辑回归lr

逻辑回归算法相信很多人都很熟悉,也算是我比较熟悉的算法之一了,毕业论文当时的项目就是用的这个算法。这个算法可能不想随机森林、SVM、神经网络、GBDT等分类算法那么复杂那么高深的样子,可是绝对不能小看这个算法... 查看详情

lr(逻辑回归)

...函数,即:h(x)=w0+w1x1+w2x2+...+wnxn写成向量形式为:h(x)=wTx逻辑回归是一种分类算法,本质上是线性回归,它通过引入对数几率函数将线性回归得到的连续值映射到0~1之间,从而可以用在分类问题上逻辑回归的预测函数为:对于任... 查看详情

逻辑回归算法的原理及实现(lr)

...概有两个:第一用来预测,第二寻找因变量的影响因素。逻辑回归(LogisticRegression,LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为... 查看详情

逻辑回归算法的原理及实现(lr)

...概有两个:第一用来预测,第二寻找因变量的影响因素。逻辑回归(LogisticRegression,LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为... 查看详情

lr(逻辑回归)算法实现(代码片段)

现在做的不是做预测某个人未来信用卡支出多少钱这类的预测工作,而是通过对过去的数据去分析哪些因素是信用卡支出的显著影响因素fromIPython.core.interactiveshellimportInteractiveShellInteractiveShell.ast_node_interactivity="all"imp... 查看详情

lr(逻辑回归)算法实现(代码片段)

现在做的不是做预测某个人未来信用卡支出多少钱这类的预测工作,而是通过对过去的数据去分析哪些因素是信用卡支出的显著影响因素fromIPython.core.interactiveshellimportInteractiveShellInteractiveShell.ast_node_interactivity="all"imp... 查看详情

机器学习—逻辑回归与svm区别

...VM有什么不同点  (1)本质上是其lossfunction不同;  逻辑回归损失函数:    SVM损失函数:    LR方法基于概率理论,假设样本为0或者1的概率可以用sigmoid函数来表示,然后 查看详情

机器学习逻辑回归lr的推导及特性是什么,面试回答?

...从这个分布,然后使用极大似然估计做参数的估计。逻辑回归=线性回归+sigmoid函数即 查看详情

逻辑回归(lr)

...清除为什么有这个东西,线性回归有什么不足,延申出了逻辑回归,线性回归为什么会不足以解决问题。2.逻辑回归能怎么解决问题。自己能说出什么一般的例子,解决这些问题的推导过程是什么?3.用到什么数学工具来构造逻... 查看详情

机器学习—逻辑回归lr

1、关于模型在各个维度进行不均匀伸缩后,最优解与原来等价吗?   答:等不等价要看最终的误差优化函数。如果经过变化后最终的优化函数等价则等价。明白了这一点,那么很容易得到,如果对原来的特征乘除某一常... 查看详情

Python SKLearn:逻辑回归概率

】PythonSKLearn:逻辑回归概率【英文标题】:PythonSKLearn:LogisticRegressionProbabilities【发布时间】:2013-12-2422:11:00【问题描述】:我正在使用PythonSKLearn模块执行逻辑回归。我有一个因变量向量Y(从M个类中取值)和自变量矩阵X(具有N... 查看详情

逻辑回归模型logisticregression详细推导(含numpy与pytorch实现)

逻辑回归模型LogisticRegression详细推导(含Numpy与PyTorch实现)文章目录​​逻辑回归模型LogisticRegression详细推导(含Numpy与PyTorch实现)​​​​内容概括​​​​广而告之​​​​LR模型介绍​​​​符号说明​​​​Sigmoid函数​​​... 查看详情

机器学习支持向量机svm逻辑回归lr决策树dt的直观对比和理论对比,该如何选择(面试回答)?

1、支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?(1)直观区别:逻辑回归:逻辑回归的决策边界总是一条直线(或者一个平面,在更高维度上是超平面),逻... 查看详情

破解数据匮乏现状:纵向联邦学习场景下的逻辑回归(lr)

...华为云可信智能计算服务(TICS)采用的纵向联邦逻辑回归(LR)方案。本文分享自华为云社区《纵向联邦学习场景下的逻辑回归(LR)》,作者:汽水要加冰。海量训练数据是人工智能技术在各个领... 查看详情

机器学习15逻辑回归与交叉熵

正文参考:https://zhuanlan.zhihu.com/p/126272731逻辑回归是分类问题,解决是与不是的问题。推理结果为0和1.LR的公式sigmoid函数具备让线性函数转化为0<y<1范围的非线性函数的能力使用该函数可以得到一个0-1间的概率LR的损... 查看详情

logisticregression几问

...于类别A,其他范围属于类别B,那么这个就是二元逻辑回归了,如果还有其他的类别则属于多元分类。Y=θXY=θXY=\\thetaXZ=g(Y)Z=g(Y)Z=g(Y)其中θθ\\theta是参数,ggg是激活函数,Z是最后的输出。有了模型,接... 查看详情

机器学习实战之logistic回归

...ssion    1.1线性回归    1.2Sigmoid函数    1.3逻辑回归    1.4LR与线性回归的区别  2.LR的损失函数  3.LR正则化    3.1L1正则化    3.2L2正则化    3.3L1正则化和L2正则化的区别  4.RL损失函数求... 查看详情

选择逻辑回归或决策树

】选择逻辑回归或决策树【英文标题】:chooselogisticregressionordecisiontree【发布时间】:2018-08-1800:52:07【问题描述】:我有一个项目,其中特征是0或1(表示是或否),标签是从0到9。应用程序将向用户提出100个问题,答案将是0或1... 查看详情