logistic逻辑回归公式推导及R语言实现
Logistic逻辑回归
Logistic逻辑回归模型
线性回归模型简单,对于一些线性可分的场景还是简单易用的。Logistic逻辑回归也可以看成线性回归的变种,虽然名字带回归二字但实际上他主要用来二分类,区别于线性回归直接拟合目标值,Logistic逻辑回归拟合的是正类和负类的对数几率。
假设有一个二分类问题,输出为y∈{0,1}
定义sigmoid函数:
用sigmoid函数的输出是0,1之间,用来拟合y=1的概率,其函数R语言画图如下:
x = seq(-5, 5, 0.1)
y = 1 / (1 + exp(-1*x))
plot(x, y, type="line")
logistic逻辑回归可以拟合因变量为1的概率,最终分类的时候,我们可以一个阈值,比如0.5,大于阈值的都分为正类,向量化公式如下:
还可以换一种方式理解logistic逻辑回归,他是用多元线性函数去拟合因变量为正例与反例的比值的自然对数,推导如下:
Logistic逻辑回归算法
- 假设自变量维度为N
- W为自变量的系数,下标0 - N
- X为自变量向量或矩阵,X维度为N,为了能和W0对应,X需要在第一行插入一个全是1的列。
- Y为因变量
- W为未知数待求解
最大似然估计法
梯度下降法迭代公式
R语言实现
使用iris数据集
> head(iris)Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
将数据分为训练数据和测试数据
R语言使用批量梯度下降法迭代求解
iris2 = rbind(subset(iris, Species=='setosa'), subset(iris, Species=='versicolor'))
X <- cbind(rep(1, nrow(iris2)), iris2$Sepal.Length, iris2$Sepal.Width, iris2$Petal.Length, iris2$Petal.Width)
Y <- as.numeric(iris2$Species) - 1
maxIterNum <- 2000;
step <- 0.05;
W <- rep(0, ncol(X))
m = nrow(X)
sigmoid <- function(z) { 1 / (1 + exp(-z))}
for (i in 1:maxIterNum){grad <- t(X) %*% (sigmoid(X %*% W)-Y);if (sqrt(as.numeric(t(grad) %*% grad)) < 1e-8){print(sprintf('iter times=%d', i));break;}W <- W - grad * step;
}
print(W);
hfunc <- function(a) {if (a > 0.5) return(1) else return (0);}
myY = apply(sigmoid(X %*% W), 1, hfunc)
print(cbind(Y, myY))
输出后,可以看到拟合完全正确,因为本文只是为了推导一下逻辑回归的算法,所以直接用全部数据拟合,没有再抽出一部分做测试数据。
总结
- 应该增加一部分训练数据,验证模型的正确性
- 应该增加正则项避免过拟合,比如L2正则
更多精彩文章 http://h2cloud.org/
logistic逻辑回归公式推导及R语言实现相关推荐
- 多元线性回归分析c语言,多元线性回归公式推导及R语言实现
多元线性回归 多元线性回归模型 实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示. 为了方便计算,我们将上式写成矩阵形式: Y = XW 假设自变量维度为N W ...
- 在R语言中实现Logistic逻辑回归
逻辑回归是拟合回归曲线的方法,当y是分类变量时,y = f(x).典型的使用这种模型是给定一组预测的X预测Ÿ.预测因子可以是连续的,分类的或两者的混合.最近我们被客户要求撰写关于Logistic逻辑回 ...
- R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
原文链接:http://tecdat.cn/?p=21444 逻辑logistic回归是研究中常用的方法,可以进行影响因素筛选.概率预测.分类等,例如医学研究中高通里测序技术得到的数据给高维变量选择问 ...
- R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择分类心肌梗塞数据模型案例...
全文下载链接:http://tecdat.cn/?p=21444 在本文中,逻辑logistic回归是研究中常用的方法,可以进行影响因素筛选.概率预测.分类等,例如医学研究中高通里测序技术得到的数据给 ...
- 多元有序logistic回归_R语言多元Logistic逻辑回归 应用案例
原文链接: http://tecdat.cn/?p=2640 tecdat.cn 可以使用逐步过程确定多元逻辑回归.此函数选择模型以最小化AIC. 如何进行多元逻辑回归 可以使用阶梯函数通过逐步过程 ...
- 主成分分析,充分图,聚类,主成分回归——数据分析与R语言 Lecture 11
主成分分析,充分图,聚类,主成分回归--数据分析与R语言 Lecture 11 主成分分析 例子:求相关矩阵特征值 例子:求主成分载荷 例子:画碎石图确定主成分 例子:主成分得分-相当于predict ...
- 回归模型选择(R语言版)
回归模型选择(R语言版) 选择准测: With Cp , AIC and BIC, smaller values are better, but for adjusted R2 , larger va ...
- r读取shape文件可视化_R语言读取空间数据以及ArcGIS中OLS工具回归结果可视化R语言版...
前面已经介绍过R语言读取excel的方法了,当然读取数据来说,个人还是推荐csv或txt存储(针对小数据量).大数据量的数据的话建议还是用数据库,此外也可以考虑data.table包读取,这个包也是个 ...
- python逻辑回归aic_基于R和Python 如何使用多项式和有序逻辑回归
原标题:基于R和Python 如何使用多项式和有序逻辑回归 基于R和Python 如何使用多项式和有序逻辑回归 我们中的大多数对于回归的知识是有限的.其中,线性和逻辑回归是我们最喜欢的一种.作为一个有 ...
最新文章
- android 星星流逝动画,Android Loading动画分析--续集
- iOS微博web网页出现的天坑 (斗鱼App 当前版本5.600有这个bug)
- 利用php实现删除,利用PHP实现删除目录及目录下所有文件 源代码
- MySQL Table--独立表空间
- 2020厦门大学845数据结构考研考试范围(大纲)和参考书目
- Facebook提出生成式实体链接、文档检索,大幅刷新SOTA!
- 打破气球所能获得的最大积分 Burst Balloons
- QT5开发及实例学习之十八显示Qt5 SVG格式图片
- 浅谈assert()函数的用法
- 优云automation实践技巧:简单4步完成自动化构建与发布
- 淘淘商城简介——淘淘商城(一)
- 数学画图软件_云山小学进行信息技术培训:画图软件的小妙用
- gomarket服务器位置,V712双核版机型常见问题集解答.pdf
- 一个蚂蚁森林能量自动收获脚本
- 程序员须学计算机语言,新手程序员需要学什么编程语言
- An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
- 怎么自己建网站?自己建网站要注意以下4点
- 01_k8s入门----部署一个应用程序
- 电子制作——锂电池大功率充电器
- 仿礼物说小程序项目实战——1.项目介绍分析
热门文章
- 爱创课堂每日一题-你做的页面在哪些流览器测试过?
- [网络安全课程实验]:基于nmap 的网络扫描和信息分析
- 2018 ACM-ICPC Syrian Collegiate Programming Contest
- 如何使用微信、支付宝提现免手续费
- 微信php开发包,TP5专用微信sdk使用教程
- 2021-2027全球与中国GPU服务器市场现状及未来发展趋势
- Superset系列8- 制作饼图
- spring框架_03
- PHP打印对象 用[]可以 用.不可以 不知所以然
- 在国企的 Java 程序员是一种什么样的体验?让我来告诉你吧!