Logistic回归——二分类 —— matlab
目录
1.简介
2.应用范围
3.分类
3.应用条件
4.原理详解
4.1 sigmod分类函数
4.2 建立目标函数
4.3 求解相关参数
5.实列分析
5.1 读取数据(excel文件)
5.2 分离数据集
5.3 求解前设定
5.4 求解目标函数
5.5 预测
5.6 预测分类
5.7 准确率
6.matlab自带函数
1.简介
Logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘 ,Logistic回归虽说是回归,但实际更属于判别分析。
2.应用范围
① 适用于流行病学资料的危险因素分析
② 实验室中药物的剂量-反应关系
③ 临床试验评价
④ 疾病的预后因素分析
3.分类
①按因变量的资料类型分:
二分类
多分类
其中二分较为常用
② 按研究方法分:
条 件Logistic回归
非条件Logistic回归
两者针对的资料类型不一样,前者针对配对研究,后者针对成组研究。
3.应用条件
① 独立性。各观测对象间是相互独立的;
② LogitP与自变量是线性关系;
③ 样本量。经验值是病例对照各50例以上或为自变量的5-10倍(以10倍为宜),不过随着统计技术和软件的发展,样本量较小或不能进行似然估计的情况下可采用精确logistic回归分析,此时要求分析变量不能太多,且变量分类不能太多;
④ 当队列资料进行logistic回归分析时,观察时间应该相同,否则需考虑观察时间的影响(建议用Poisson回归)。
4.原理详解
4.1 sigmod分类函数
之所以在这里介绍,是因为下面会用到这个函数
Sigmoid函数:
曲线表示:
由图可见当范围为0-1,当X<0时,Y趋向于0,X>0时,Y趋向于1,适合用于0-1二分类。
所以我们就可以设分类函数如下:
其中为自变量,即特征数据。实际因变量为,为0-1变量,为预测值范围为0-1。显然这个模型需要求解的变量为。
4.2 建立目标函数
对于输入变量,设为输出为1的概率,则为输出0的概率。则可表示成如下:
求解损失函数:用概率论中的极大似然估计的方法,构建概率函数如下,
对损失函数可以理解为,当时,的值越大,P的值越大;时,的值越小,P的值越小。即可以认为,当P值越大时预测的越准确。单个输入的目标即为P取最大。对M个输入样本,可以构建以下目标函数:
对目标函数取对数可以将目标函数的连乘变为连加:
4.3 求解相关参数
设,求的最大值,可以用梯度上升的方法进行求解,如果在前面加上一个负号,则就转化为梯度下降。在这里用梯度上升法求解系数 :
其中,为学习率。对目标函数求梯度、即求导。
其中:
将其带入原式可得:
5.实列分析
相关数据如下:
fbs | restecg | thalach | exang | 0ldpeak | sl0pe | ca | thal | target |
0 | 1 | 168 | 0 | 1 | 2 | 2 | 3 | 0 |
1 | 0 | 155 | 1 | 3.1 | 0 | 0 | 3 | 0 |
0 | 1 | 125 | 1 | 2.6 | 0 | 0 | 3 | 0 |
0 | 1 | 161 | 0 | 0 | 2 | 1 | 3 | 0 |
1 | 1 | 106 | 0 | 1.9 | 1 | 3 | 2 | 0 |
0 | 0 | 122 | 0 | 1 | 1 | 0 | 2 | 1 |
0 | 2 | 140 | 0 | 4.4 | 0 | 3 | 1 | 0 |
0 | 0 | 145 | 1 | 0.8 | 1 | 1 | 3 | 0 |
0 | 0 | 144 | 0 | 0.8 | 2 | 0 | 3 | 0 |
0 | 0 | 116 | 1 | 3.2 | 1 | 2 | 2 | 0 |
0 | 1 | 125 | 0 | 1.6 | 1 | 0 | 2 | 1 |
1 | 0 | 136 | 1 | 3 | 1 | 0 | 3 | 0 |
5.1 读取数据(excel文件)
data=xlsread('D:\桌面\data.xlsx')
返回:发现数据直接从不是标题的第一行开始读取了
5.2 分离数据集
正式介绍之前补充一点东西
行数 = size(data,1)
列数 = size(data,2)
好,开始进入正题
此为通过比例确定,选择多少行数据作为测试集
num=round(0.8*size(data,1));%取整个数据0.8的比例训练
此为,选出相应比例的数据作为测试集
train_data=data(1:num,:)
此为,将剩余数据作为验证集
test_data=data(num+1:end,:)
分离测试集的x和y
n=size(data,2)
train_y=train_data(:,n); %确定y所对应的数据
train_x=train_data(:,1:n-1); %除去y将剩余的数据都归于x
同理分离验证集的x和y
test_y=test_data(:,n);
test_x=test_data(:,1:n-1);
5.3 求解前设定
详看上面过程公式4.1的分类函数的解析
train_x1=[ones(size(train_x,1),1),train_x];%在基础上增加常数项
test_x1=[ones(size(test_x,1),1),test_x];
w=zeros(size(train_x1,2),1);
lr=0.001;%学习率
5.4 求解目标函数
pred_f= train_x1*w; %预测出的方程式取值
pred_y=1./(1+exp(-pred_f)); %Sigmoid函数
d_w=(train_y-pred_y)'*train_x1;
w=w+lr*d_w';
返回:
5.5 预测
pred_y=1./(1+exp(-test_x1*w)) %%Sigmoid函数预测出的y
返回:
5.6 预测分类
fenlei=(pred_y>=0.5)
返回:
5.7 准确率
accu=1-sum(abs(fenlei-test_y))./length(test_y)
返回:
我们用预测的和原始数据对比一下,确实是只对了一个
6.matlab自带函数
fitglm
官方文档:Create generalized linear regression model - MATLAB fitglm- MathWorks 中国
Create generalized linear regression model 创建广义线性回归模型
mdl = fitglm(x,y,'distribution','binomal') 构建二项式 logistic模型
接下来我们再对上述数据进行拟合
数据集划分部分就不重复了
GM= fitglm(x,y);
y_p = predict(GM,x_t);
fenlei=(y_p>=0.5)
accu=1-sum(abs(fenlei-y_t))./length(y_p)
返回:
可以发现和上面结果一致。
线性回归结果分析:
1. 回归系数置信区间应不包含零点
2. stats统计量:
1) : 的值越接近 1,变量的线性相关性越强,
2)F : 当 F > F1-α(m,n-m-1) ,即认为因变量 y 与自变量 x1,x2,...,xm 之间有显著的线性相关关系;
否则认为因变量 y 与自变量 x1,x2,...,xm 之间线性相关关系不显著。
3)p : 若 p < α(α 为预定显著水平),则说明因变量 y 与自变量 x1,x2,...,xm之间显著地有线性相关关系。
4) 主要用来比较模型是否有改进,其值越小说明模型精度越高。
本次就到这里了,如果有错误的话及时联系我进行改正哦,谢谢。
Logistic回归——二分类 —— matlab相关推荐
- matlab逻辑回归工具箱,matlab-逻辑回归二分类(Logistic Regression)
逻辑回归二分类 用到的预测函数为 其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类).θ为各个特征的参数.θ=[θ1,θ2,θ3...]T 损失函数J(θ)为 利用梯度下降算法进行参数的更 ...
- 交叉熵损失函数分类_逻辑回归(Logistic Regression)二分类原理,交叉熵损失函数及python numpy实现...
本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 ----- ...
- Python机器学习(二):Logistic回归建模分类实例——信用卡欺诈监测(上)
Logistic回归建模分类实例--信用卡欺诈监测 现有一个creditcard.csv(点此下载)数据集,其中包含不同客户信用卡的特征数据(V1.V2--V28.Amount)和标签数据(Class ...
- 深度学习 实验三 logistic回归预测二分类
文章目录 深度学习 实验三 logistic回归预测二分类 一.问题描述 二.设计简要描述 三.程序清单 深度学习 实验三 logistic回归预测二分类 一.问题描述 学会使用学习到的逻辑回归的 ...
- Logistic回归做分类或预测(实战代码)
1.Logistic回归为什么可以用于分类? 谈这个问题之前,先谈下:一般来说,我们如何用一个模型做分类? 一般的,在机器学习中,使用一个模型做分类的前提,是根据数据(包含样本和标签)训练出一个模型, ...
- 深度学习 神经网络(5)逻辑回归二分类-Pytorch实现乳腺癌预测
深度学习 神经网络 逻辑回归二分类-乳腺癌预测 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载并查看数据集 2.3 数据处理 2.4 数据分割 2.5 迭代训练 2.6 数据验证 一.前言 ...
- 吴恩达机器学习之逻辑回归(二分类)
吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...
- 逻辑回归二分类算法python_多分类逻辑回归 (Multinomial Logistic Regression)
前言 分类从结果的数量上可以简单的划分为: 二分类(Binary Classification) 多分类(Multinomial Classification). 其中二分类是最常见且使用最多的分类场 ...
- 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归
一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...
最新文章
- 漫画 | 上班第一天,前端把后端告上县衙,还列了 5 宗罪!
- R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板、brewer、灰度比例)实战(density plot)
- UNIX中的Poll函数
- JavaWeb002-servlet基础
- [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
- Simulink仿真 第四节 总线及示波器模块
- 【LeetCode从零单排】No27.Remove Element
- hive 1.1.1 Specified key was too long; max key length is 767 bytes
- 华为交换机RRPP配置实验
- 函数节流(throttle)与函数防抖(debounce)
- 深入理解 RecyclerView 系列之一:ItemDecoration
- 随手记android面试题,微众银行风险模型面试随手记(一面+二面)
- 设计干货栅格系统素材 | UI设计师应用好帮手
- 怎么取消打开文件的安全警告?
- RTOS原理与实现13(完):内核裁剪与移植
- Google Perf Tools安装以及使用
- 从Word2Vec到Bert,聊聊词向量的前世今生(一)
- Excel 中VBA脚本的简单应用
- Endnote与知网研学(E-study)题录相互导入
- 方舟生存进化服务器存档位置,方舟生存进化如何转移存档
热门文章
- Win7电脑创建本地连接网络的操作方法
- 搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤
- vs2010 mysql linq to sql 系列_LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据...
- js中遇到的一个错误Uncaught SyntaxError: missing )after argument list
- mysql多个分类取n条_MySQL获取所有分类和每个分类的前N条记录
- php oci8 11,linux下为php开启oci8扩展(ubuntu14亲测可用)
- python圆面积函数_Python基础函数必学
- uniapp防抖操作
- css如何实现一个小三角形,用纯css写一个常见的小三角形
- c 语言运算符号大全,c语言运算符号详细说明