目录

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相关推荐

  1. matlab逻辑回归工具箱,matlab-逻辑回归二分类(Logistic Regression)

    逻辑回归二分类 用到的预测函数为 其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类).θ为各个特征的参数.θ=[θ1,θ2,θ3...]T 损失函数J(θ)为 利用梯度下降算法进行参数的更 ...

  2. 交叉熵损失函数分类_逻辑回归(Logistic Regression)二分类原理,交叉熵损失函数及python numpy实现...

    本文目录: 1. sigmoid function (logistic function) 2. 逻辑回归二分类模型 3. 神经网络做二分类问题 4. python实现神经网络做二分类问题 ----- ...

  3. Python机器学习(二):Logistic回归建模分类实例——信用卡欺诈监测(上)

    Logistic回归建模分类实例--信用卡欺诈监测 现有一个creditcard.csv(点此下载)数据集,其中包含不同客户信用卡的特征数据(V1.V2--V28.Amount)和标签数据(Class ...

  4. 深度学习 实验三 logistic回归预测二分类

    文章目录 深度学习 实验三 logistic回归预测二分类 一.问题描述 二.设计简要描述 三.程序清单 深度学习 实验三 logistic回归预测二分类 一.问题描述   学会使用学习到的逻辑回归的 ...

  5. Logistic回归做分类或预测(实战代码)

    1.Logistic回归为什么可以用于分类? 谈这个问题之前,先谈下:一般来说,我们如何用一个模型做分类? 一般的,在机器学习中,使用一个模型做分类的前提,是根据数据(包含样本和标签)训练出一个模型, ...

  6. 深度学习 神经网络(5)逻辑回归二分类-Pytorch实现乳腺癌预测

    深度学习 神经网络 逻辑回归二分类-乳腺癌预测 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载并查看数据集 2.3 数据处理 2.4 数据分割 2.5 迭代训练 2.6 数据验证 一.前言 ...

  7. 吴恩达机器学习之逻辑回归(二分类)

    吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...

  8. 逻辑回归二分类算法python_多分类逻辑回归 (Multinomial Logistic Regression)

    前言 分类从结果的数量上可以简单的划分为: 二分类(Binary Classification) 多分类(Multinomial Classification). 其中二分类是最常见且使用最多的分类场 ...

  9. 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归

    一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...

最新文章

  1. 漫画 | 上班第一天,前端把后端告上县衙,还列了 5 宗罪!
  2. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板、brewer、灰度比例)实战(density plot)
  3. UNIX中的Poll函数
  4. JavaWeb002-servlet基础
  5. [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
  6. Simulink仿真 第四节 总线及示波器模块
  7. 【LeetCode从零单排】No27.Remove Element
  8. hive 1.1.1 Specified key was too long; max key length is 767 bytes
  9. 华为交换机RRPP配置实验
  10. 函数节流(throttle)与函数防抖(debounce)
  11. 深入理解 RecyclerView 系列之一:ItemDecoration
  12. 随手记android面试题,微众银行风险模型面试随手记(一面+二面)
  13. 设计干货栅格系统素材 | UI设计师应用好帮手
  14. 怎么取消打开文件的安全警告?
  15. RTOS原理与实现13(完):内核裁剪与移植
  16. Google Perf Tools安装以及使用
  17. 从Word2Vec到Bert,聊聊词向量的前世今生(一)
  18. Excel 中VBA脚本的简单应用
  19. Endnote与知网研学(E-study)题录相互导入
  20. 方舟生存进化服务器存档位置,方舟生存进化如何转移存档

热门文章

  1. Win7电脑创建本地连接网络的操作方法
  2. 搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤
  3. vs2010 mysql linq to sql 系列_LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据...
  4. js中遇到的一个错误Uncaught SyntaxError: missing )after argument list
  5. mysql多个分类取n条_MySQL获取所有分类和每个分类的前N条记录
  6. php oci8 11,linux下为php开启oci8扩展(ubuntu14亲测可用)
  7. python圆面积函数_Python基础函数必学
  8. uniapp防抖操作
  9. css如何实现一个小三角形,用纯css写一个常见的小三角形
  10. c 语言运算符号大全,c语言运算符号详细说明