R语言数据分析系列之九 - 逻辑回归

R语言数据分析系列之九

—— by
comaple.zhang

本节将一下逻辑回归和R语言实现,逻辑回归(LR,LogisticRegression)其实属于广义回归模型,根据因变量的类型和服从的分布可以分为,普通多元线性回归模型,和逻辑回归,逻辑回归是指因变量是离散并且取值范围为{0,1}两类,如果离散变量取值是多项即变为 multi-class classification,所以LR模型是一个二分类模型,可以用来做CTR预测等。那么我们现在来引出逻辑回归如何做二分类问题。

问题引入

在多元线性回归中我们的模型公式是这样子的(参考前两节内容),

这里的f(x,w)是连续的变量,如果我们的因变量是离散的如何处理呢,比如我们得数据是这样子的。

x <- seq(-3,3,by=0.01)

y <- 1/(1+exp(-x))

gdf <- data.frame(x=x,y=y)

ggplot(gdf,aes(x=x,y=x+0.5)) +geom_line(col=‘green‘)

这样显然无法拟合我们{0,1}输出,为了能够拟合离散的{0,1}输出我们引入sigmoid函数如下:

ggplot(gdf,aes(x=x,y=y))+geom_line(col=‘blue‘)+ geom_vline(xintercept=c(0),col=‘red‘) + geom_hline(yintercept=c(0,1),lty=2)

用R将该函数的图行画出来如下图:

又来这个函数我们可以很方便的将线性关系转换为离散的{0,1}输出

ggplot(gdf,aes(x=x,y=y))+geom_line(col=‘blue‘)+ geom_vline(xintercept=c(0),col=‘red‘) + geom_hline(yintercept=c(0,1),lty=2) +geom_line(aes(x=x,y=x+0.5),col=‘green‘)

于是我们的类别概率可以表示为:

这样我们的转化就完成了,模型最后化简为如下形式:

LR的损失函数(cost function)

上面引出了sigomid得函数并将其用于我们得模型,那如何定义损失函数呢,总不能去做减法吧,除了做减法我们还可以怎么做呢,对于离散变量的模型,我们希望能够达到,每个分类预测正确的个数越多越好,即模型的联合概率密度最大:

即我们要最大化L(w),为了优化L(w)取最大值,我们对L(w)去负对数似然,从而将最大化问题转化为最小化问题:

接下来我们来优化这个损失函数的到是的L(w)最小的那组w。

优化方法有,牛顿法,梯度下降,L-BFGS这里不再对这几种方法详述,后面其他系列里面会讲到。

LR在R语言中的实现

我们利用iris数据集,进行逻辑回归二分类测试,该数据集是R语言自带得数据集,包括我个属相,和三个分类。逻辑回归我们用glm函数实现,该函数提供了各种类型得回归,如:提供正态、指数、gamma、逆高斯、Poisson、二项。我们用的logistic回归使用的是二项分布族binomial。

index <- which(iris$Species == ‘setosa‘)

ir <- iris[- index,]

levels(ir$Species)[1] <- ‘‘

split <- sample(100,100*(2/3))

#生成训练集

ir_train <- ir[split,]

#生成测试集

ir_test <- ir[-split,]

fit <- glm(Species ~.,family=binomial(link=‘logit‘),data=ir_train)

summary(fit)

real <- ir_test$Species

data.frame(real,predict)

predict <- predict(fit,type=‘response‘,newdata=ir_test)

res <- data.frame(real,predict =ifelse(predict>0.5,‘virginca‘,‘versicorlor‘))

#查看模型效果

plot(res)

时间: 2024-08-10 10:13:55

R语言数据分析系列之九 - 逻辑回归的相关文章

R语言数据分析系列之七

R语言数据分析系列之七 -- by comaple.zhang 回归分析建模是数据分析里面很重要的一个应用之一,即通过使用已有的自变量的值建立某种关系,来预测未知变量(因变量)的值.如果因变量是连续的那就是回归分析,如果因变量为离散的,可以理解为是分类.在机器学习算法中,不管是连续变量预测还是离散的变量预测,我们都称之为有监督学习. 回归分析可以用来做广告点击率预测也可以用来做销量预测,app各种指标预测,或者库存量,分仓铺货预测等.既然如此神奇,那么我们就来看一下回归是如何做到的. 数据集 我

R语言数据分析系列六

R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标.经常使用的例如以下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差.极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每一个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根.用来衡量一个数据集的

R语言数据分析系列之八

R语言数据分析系列之八 -- by comaple.zhang 再谈多项式回归,本节再次提及多项式回归分析,理解过拟合现象,并深入cross-validation(交叉验证),regularization(正则化)框架,来避免产生过拟合现象,从更加深入的角度探讨理论基础以及基于R如何将理想照进现实. 本节知识点,以及数据集生成 1,        ggplot2进行绘图; 2,        为了拟合更复杂的数据数据集采用sin函数加上服从正太分布的随机白噪声数据; 3,        poly

R语言数据分析系列之五

R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,详细实现细节请參见我的github项目:https://github.com/comaple/R-wordcloud.git 好了我们開始今天的旅程吧: 本节用到的包有:RColorBrewer用来生成序列颜色值, plotrix三维图形 本节用到的数据集:vcd包中的Arthritis数据集 数据集 install.pa

R语言数据分析系列之六

R语言数据分析系列之六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标,常用的如下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差,极差,偏度,峰度 先来解释一下各个量得含义,浅显就不说了,这里主要说一下不常见的 众数:出现次数最多的 方差:每个样本值与均值的差得平方和的平均数 标准差:又称均方差,是方差的二次方根,用来衡量一个数据集的集中性

R语言数据分析系列之三

R语言数据分析系列之三 -- by comaple.zhang 上次讲了vector这次讲matrix,array,dataframe,ts 数据结构 matrix 矩阵 R语言中矩阵可以理解为是由两个及两个以上的向量组成. 矩阵创建 从向量创建 > x <- sample(1:100,16) > x [1] 14 43 89  3 96 58 61 75 33 66 24 54 45 15  6 44   > m <- matrix(x)   > m         

R语言数据分析系列之四

R语言数据分析系列之四 -- by comaple.zhang 说到统计分析我们就离不开随机变量,所谓随机变量就是数学家们为了更好的拟合现实世界的数据而建立的数学模型.有了她我们甚至可以来预测一个网站未来几天的日访问用户,股票的未来走势等等.那么本节我们来一起探讨以下常用的函数分布,以及流程控制语句. 常见分布有:正态分布(高斯分布),指数分布,beta分布,gamma分布等. 正态分布 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率密度函数曲线,由正态分

R语言对二分连续变量进行逻辑回归数据分析

原文链接:http://tecdat.cn/?p=10067 教育或医学的标准情况是我们有一项连续的措施,但随后我们对那些具有临床/实践意义的措施有了切入点.一个例子是BMI.您可能有一个成绩测试,合格分数为70.研究人员有时可能会对30岁以上的BMI建模感兴趣,或者对通过/失败作的结果感兴趣.实质性问题通常落在对某人超过/低于此临床上显着阈值的概率进行建模的范畴之内.因此,我们将连续测量结果分为两部分,并使用逻辑回归等方法分析. 回到介绍性统计信息,您会听到类似的信息:大多数人宁愿使用规则线性

R语言多元分析系列

R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析.简化数据集的技术.它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推.主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征.这是通过保留低阶主成分,忽略高阶主成分做到的.这样低阶成分往往能够保留住数据的最重要方面.但是在处理观测数目小于变量数目时无法发挥