logistic回归(代码片段)

lhys666 lhys666     2023-01-16     687

关键词:

创作背景

本菜鸡最近想学学 机器学习,这不,刚开始。
如果觉得我这篇文章写的好的话,能不能给我 点个赞评论 一波。如果要点个 关注 的话也不是不可以🤗

回归与分类的区别

  • 回归 要预测的结果是 具体的数值,根据训练数据预测某一输入对应的输出数据。输出的结果是 实数
  • 分类 要判断的结果是 类别,根据训练数据预测 分类正确的概率 (属于 [0, 1]),进而输出 判断的类别

回归向分类的转变

既然都是 预测,使用相同的 x ,只是输出从原来的 实数 变成了 类别,那我们就用一个函数将结果从 实数集 映射到 [0, 1] 中,然后再转成对应分类不就行了呗。

  • 举个栗子:
    • 有两个类别的实例,o 代表正例,x 代表负例
    • 可以找到一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0 将两类实例分隔开,即 正确分类
    • 其中, w ∈ R n w \\in \\mathbbR^n wRn 为超平面的 法向量 b ∈ R b \\in \\mathbbR bR偏置
    • 超平面上方的点都满足 w T x + b > 0 w^Tx+b>0 wTx+b>0
    • 超平面下方的点都满足 w T x + b < 0 w^Tx+b<0 wTx+b<0
    • 可以根据以下 x 的线性函数值(与 0 的比较结果)判断实例类别: z = g ( x ) = w T x + b z=g(x)=w^Tx+b z=g(x)=wTx+b
    • 分类函数以 z 为输入,输出预测的类别: c = H ( z ) = H ( g ( x ) ) c=H(z)=H(g(x)) c=H(z)=H(g(x))
  • 以上是 线性分类器 的基本模型。

有个方法可以实现 线性分类器 ,那就是 Logistic 回归。

  • Logistic 回归是一种 广义线性 模型,使用 线性判别式函数 对实例进行分类。

而一般实现这种分类方法的函数是 sigmoid 函数。(因为其中最为出名的是 logistic 函数,所以也被称为 logistic 函数)。

饱和函数

先看一下 饱和函数,至于为什么要看这个函数,因为 Sigmoid 函数都需要满足这个函数,具体见下述 sigmoid (也即 logistic) 函数。

  • x < 0 时,导数值 x ≥ 0 时,导数值 ,即,将导函数为 正态分布 的分布函数称为 饱和函数
  • 看一下图像。

一些饱和函数

  • 单位阶跃函数 δ
  • e r f ( π 2 x ) erf(\\frac\\sqrt \\pi2x) erf(2π x)
  • 2 π arctan ⁡ ( π 2 x ) \\frac2\\pi \\arctan (\\frac\\pi2x) π2arctan(2πx)
  • 2 π g d ( π 2 x ) \\frac2\\pi gd(\\frac\\pi2x) π2gd(2πx)
  • x 1 + ∣ x ∣ \\fracx1+|x| 1+xx

图像如下

它们的导函数是服从 正态分布 的,图像如下

所以,最理想的分类函数为 单位阶跃函数直上直下的,是 饱和函数 的一种。如下图

也就是
H ( z ) = 0 , x < 0 0.5 , x = 0 1 , x > 0 H(z)= \\begincases 0, x<0 \\\\ 0.5, x=0 \\\\ 1, x>0 \\endcases H(z)=0,x<00.5,x=01,x>0

  • 但单位阶跃函数作为分类函数有一个严重缺点,不连续,所以 不是处处可微,使得一些算法不可用(如 梯度下降)。
  • 找一个 输入输出特性与单位阶跃函数类似,并且 单调可微的函数 来代替阶跃函数,sigmoid 函数是一种常用替代函数。

sigmoid 函数(logistic 函数)

sigmoid 函数是一类函数,满足以下函数特征即可:

  • 有极限
  • 单调 函数
  • 满足 饱和函数 (知道我为什么要提到 饱和函数 了吧(●’◡’●))

函数定义
σ ( x ) = 1 1 + e − z \\sigma(x)=\\frac11+e^-z σ(x)=1+ez1

  • 一般 σ \\sigma σ 函数就指 logistic 函数

logistic 函数的值域在 (0,1) 之间连续,函数的输出可视为 x 条件下实例为正例的条件概率 ,即
P ( y = 1 ∣ x ) = σ ( g ( x ) ) = 1 1 + e − ( w T x + b ) P(y=1|x)=\\sigma (g(x))=\\frac11+e^-(w^Tx+b) P(y=1x)=σ(g(x))=1+e(wTx+b)1
x 条件下实例为负例的条件概率为
P ( y = 0 ∣ x ) = 1 − σ ( g ( x ) ) = 1 1 + e ( w T x + b ) P(y=0|x)=1-\\sigma (g(x))=\\frac11+e^(w^Tx+b) P(y=0x)=1σ(g(x))=1+e(wTx+b)1

logistic 函数是 对数概率函数反函数,一个事件的概率指该事件发生的概率 p 与该事件不发生的概率 1-p 的比值。

  • 对数概率为
    log ⁡ p 1 − p \\log\\fracp1-p log1pp
  • 对数概率大于 0 表明 正例 的概率大,反之,则 负例 的概率大。

Logistic 回归模型假设一个实例为正例的对数概率是输入 x 的 线性函数,即:
log ⁡ p 1 − p = w T x + b \\log \\fracp1-p=w^Tx+b log1pp=wTx+b
反求 p ,即:
p = σ ( g ( x ) ) = 1 1 + e − ( w T x + b ) p = \\sigma(g(x))=\\frac11+e^-(w^Tx+b) p=σ(g(x))=1+e(wTx+b)1
logistic 函数有个很好的数学特性, σ ( z ) \\sigma(z) σ(z) 一阶导数形式简单,并且关于其本身的函数:
d σ ( z ) d z = σ ( z ) ( 1 − σ ( z ) ) \\fracd \\sigma(z)dz = \\sigma(z) (1-\\sigma(z)) dzdσ(z)=σ(z)(1σ(z))
Logistic 回归模型假设函数为
h w , b ( x ) = σ ( g ( x ) ) = 1 1 + e − ( w T x + b ) h_w,b(x) = \\sigma (g(x)) = \\frac11+e^-(w^Tx+b) hw,b(x)=σ(g(x[机器学习实战-logistic回归]使用logistic回归预测各种实例(代码片段)

[机器学习实战-Logistic回归]使用Logistic回归预测各种实例目录[机器学习实战-Logistic回归]使用Logistic回归预测各种实例本实验代码已经传到gitee上,请点击查收!一、实验目的二、实验内容与设计思想实验内容设计思想三、实验使... 查看详情

logistic回归(线性和非线性)(代码片段)

一:线性logistic回归代码如下:importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportscipy.optimizeasoptimportseabornassns#读取数据集path=‘ex2data1.txt‘data=pd.read_csv(path,header=None,names=[‘Exam1‘,‘Exam 查看详情

机器学习--logistic回归(代码片段)

logistic回归很多时候我们需要基于一些样本数据去预测某个事件是否发生,如预测某事件成功与失败,某人当选总统是否成功等。这个时候我们希望得到的结果是bool型的,即trueorfalse我们最先想到的是通过最小二乘法求出线性回归... 查看详情

logistic回归(代码片段)

适用因变量一般有1和0(是否)两种取值,表示取值为1的概率.importpandasaspdfilename=‘../data/bankloan.xls‘data=pd.read_excel(filename)x=data.iloc[:,:8].as_matrix()#读取自变量,并处理为pd的二维数组y=data.iloc[:,8].as_matrix()#读取因变量,是否违约fromsklea 查看详情

logistic回归预测病马死亡率(代码片段)

logistic回归实现预测病马死亡率python3已经实现代码还在更新中写完全部注释以后在贴上来#-*-coding:utf-8-*-fromnumpyimport*#加载数据集defloadDataSet():dataMat=[];labelMat=[]fr=open(‘testSet.txt‘)forlineinfr.readlines():#逐行读取lineArr=line.strip() 查看详情

机器学习实战第五章logistic回归(代码片段)

defgradAscent(dataMatIn,classLabels):dataMatrix=mat(dataMatIn)#converttoNumPymatrixlabelMat=mat(classLabels).transpose()#converttoNumPymatrixm,n=shape(dataMatrix)alpha=0.001maxCycles=500weights=ones(( 查看详情

logistic回归模型(c++代码实现)(代码片段)

Logistic回归主要针对输入的数据是多个,输出则是有限的数值型,多为2个分类。涉及到以下方面:1.输出y=w0+w1*x1+w2*x2+.....(x1,x2,...是样本的属性值,为连续型的变量,w0,w1,w2,...为所要求的参数,y... 查看详情

用二项逻辑斯蒂回归解决二分类问题(代码片段)

...回归是统计学习中的经典分类方法,属于对数线性模型。logistic回归的因变量可以是二分类的,也可以是多分类的基本原理logistic分布折X是连续的随机变量,X服从logistic分布是指X具有下列分布函数和密度函数: 其中为位置参... 查看详情

《机器学习实战》学习笔记:logistic回归(代码片段)

...录欢迎关注WX公众号:【程序员管小亮】本章内容1、Logistic回归2、基于Logistic回归和Sigmoid函数的分类3、梯度上升算法4、基于最优化方法的最佳回归系数确定1)查看数据的分布情况2)训练算法:使用梯度上升找到... 查看详情

机器学习logistic分类回归算法(二元分类&多元分类)(代码片段)

...创作者。该文章收录专栏✨—机器学习—✨【机器学习】logistics分类一、线性回归能用于分类吗?二、二元分类2.1假设函数2.1.1案例一2.1.2例子二2.2拟合logistic回归参数θi\\theta_iθi​三、 查看详情

机器学习--logistics(代码片段)

摘要1.Logistic回归分类2.梯度下降法3.代码实现与解释 Logistic回归逻辑斯特回归(logisticregression)是一种非常经典的分类方法。其用到的分类函数一般为Sigmoid函数,其函数形式为:  其图形表示如下: 从图中我们可... 查看详情

python与r语言手推logistic回归(梯度下降法/牛顿法)(代码片段)

概念及应用:logistic回归主要用于分类问题中,遇到k分类问题时则转化为k个二分类问题即可。logistic回归是将logit曲线套用在解释变量线性组合上,利用极大似然法进行参数估计,将似然函数(二项分布交叉熵... 查看详情

02-15logistic回归(鸢尾花分类)(代码片段)

目录Logistic回归(鸢尾花分类)一、导入模块二、获取数据三、构建决策边界四、训练模型4.1C参数与权重系数的关系五、可视化更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你... 查看详情

机器学习实战 logistic回归(代码片段)

logistic回归梯度上升法importnumpyasnp"""function:加载数据parameter:无returns:dataMat-数据集labelMat-标签集"""defloadDataSet():dataMat=[]#数据集labelMat=[]#标签集fr=open('testSet.txt')forlineinfr.readlines():lineArr=line.strip().split()dat... 查看详情

逻辑回归基础梳理(代码片段)

...的模型参数,然后测试验证我们这个求解的模型的好坏。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)回归模型中,y是一个定性变量,比如y=0或... 查看详情

机器学习-逻辑回归与线性回归(代码片段)

logistic回归与线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalized linear model)。这一家族中的模型形... 查看详情

《计算机视觉和图像处理简介-中英双语+代码实践版》:最小批梯度下降求解logistic回归(代码片段)

LogisticRegressionWithMini-BatchGradientDescentObjectiveRepresentyourdataasaDatasetobjectCreateaLogisticRegressionModelusingPyTorchSetaCriteriontocalculateLossCreateaDataLoaderandsettheBatchSizeCreateanOptimizertoupdateModelParametersandsetLearningRateTrainaModelTableofContentsInthislab,youwilllearn... 查看详情

第九节,线性逻辑回归(代码片段)

...,而且受噪声影响比较大。如果非要应用进入,可以使用logistic回归。logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)函数来预测。下面介绍一个线性逻辑... 查看详情