分类问题就是给出物质的属性,判断其属于什么成分,本文将讲述逻辑回归求解二分类问题

本文着重于模型的实现,对于推导只是概括性的叙述

一、问题提出

二、逻辑回归函数logistic

1.线性线性概率模型

既然是回归问题,线性性是最简单的一种关系,在逻辑回归中,也是以线性概率模型作为基础进行回归。

此处的回归函数与多元线性回归一样,即y_hat=β0+β1x1+β2x2+.....

但也同样因为是2分类问题,y的值只能取0或者1。(在函数中体现为取0到1)

既然y只能取0或1那么就可以和已经非常成熟的模型————伯努利分布联系在一起,形成一个条件概率,这就是所谓的线性概率模型

2.sigmod函数

由于由于后者有解析表达式(而标准正态分布的cdf没有),所以计算logistic模型比probit模型更为方便。



3.求解方法————极大似然估计

4.分类原则

y_hat>=0.5,则认为y取1;否则认为y取0

三、SPSS实现————以水果二分类数据为例

1.数据处理

此处的数据处理部分就是把用中文表示的名词“苹果”改成数值型变量0-1,用excel容易做到,此处我们讲解用SPSS形成虚拟变量的方法



此处的“根名称”就是虚拟变量的名词,SPSS不知道哪个是0,哪个是1,于是会创造3组虚拟变量,我们只需要保留我们需要的那一组即可。此处我们保留“苹果”是1的变量

2.进行二分类逻辑回归

按图片设置好即可;需要保存概率组成员



接下来我们来解释一下具体的参数调整

(1)输入方法

此处的输入方法就是指如何输入自变量的方法;

输入:把自变量全部输入

向前:先输入一个自变量,看其是否显著。如果显著则保留,不显著的去除;然后再输入另一个自变量。不同方法使用的统计量不同

向后:把自变量全部输入,观察所有的变量是否显著。把最不显著的去除,然后再次进行检验,直到把全都显著的自变量保留。不同方法使用的统计量不同

一般采用向后的方法

(2)定义分类变量

自变量是分类形式的(如性别)需要单独定义分类变量;参考类别为第一个,则把第一个设置为1。参考类别的设置对结果影响不大

3.查看结果

(1)块1:分类表

如图所示,此表是一个预测与实测数目的二元表,对角线上的个数为分类正确的个数。并且给出了分类正确率

(2)逻辑回归系数表

(3)预测结果解读

SPSS会在数据中给出新的两列,分别为按逻辑函数计算出来的概率值和逻辑回归后的0-1变量

四、回归结果差————如何选择合适的回归模型?

上面的方法正确率只有75%左右,显然是正确率较低的,那如何提高正确率呢?

我们的模型是以线性模型作为基础,想要提高正确率,可以提高模型的复杂度,在线性回归模型中体现为增加平方项与交互项

1.加入平方项的实现方法

在SPSS中的计算变量功能可实现

2.无脑加入平方项的后果————过拟合

在我们把所有的自变量都加入平方项后,得到结果如图所示:



可以看到,虽然预测正确率为100%,但是所有的系数都不显著了,这就导致的模型的过拟合

3.如何确定合适的模型?————训练与测试

逻辑回归求解二分类问题以及SPSS的实现的更多相关文章

  1. Spark 多项式逻辑回归__二分类

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{L ...

  2. Spark 二项逻辑回归__二分类

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{B ...

  3. scikit-learn机器学习(二)逻辑回归进行二分类(垃圾邮件分类),二分类性能指标,画ROC曲线,计算acc,recall,presicion,f1

    数据来自UCI机器学习仓库中的垃圾信息数据集 数据可从http://archive.ics.uci.edu/ml/datasets/sms+spam+collection下载 转成csv载入数据 im ...

  4. 机器学习---逻辑回归(二)(Machine Learning Logistic Regression II)

    在<机器学习---逻辑回归(一)(Machine Learning Logistic Regression I)>一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质.现在 ...

  5. stanford coursera 机器学习编程作业 exercise 3(逻辑回归实现多分类问题)

    本作业使用逻辑回归(logistic regression)和神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于逻辑回归的一个编程练习,可参考:http://www.cnb ...

  6. Logistic Regression(逻辑回归)(二)—深入理解

    (整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 上一篇讲解了Logistic Regression的基础知识,感觉 ...

  7. Spark 多项式逻辑回归__多分类

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{B ...

  8. [Python]数据挖掘(1)、梯度下降求解逻辑回归——考核成绩分类

    ps:本博客内容根据唐宇迪的的机器学习经典算法  学习视频复制总结而来 http://www.abcplus.com.cn/course/83/tasks 逻辑回归 问题描述:我们将建立一个逻辑回归模 ...

  9. [Machine Learning] 逻辑回归 (Logistic Regression) -分类问题-逻辑回归-正则化

    在之前的问题讨论中,研究的都是连续值,即y的输出是一个连续的值.但是在分类问题中,要预测的值是离散的值,就是预测的结果是否属于某一个类.例如:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈 ...

  10. 逻辑回归,多分类推广算法softmax回归中

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

随机推荐

  1. golang计时器

    timer 计时器 用于在指定的Duration类型时间后调用函数或计算表达式. 如果只是想指定时间之后执行,使用time.Sleep() 使用NewTimer(),可以返回的Timer类型在计时器到 ...

  2. linux sftp连接报错:JSchException: Algorithm negotiation fail解决方案

    问题描述 我们用jsch包进行ssh登录的时候会报这个错误: com.jcraft.jsch.JSchException: Algorithm negotiation fail at com.jcra ...

  3. Unity Shader中的常见流控制指令

    在Shader中处理流控制语句时,常加上一些宏去处理流控制指令.例如: [UNITY_UNROLL] for (int i = 0; i < 10; i++) { //do something. ...

  4. 关于对于Java中Entity以及VO,以及DTO中Request对象序列化的学习

    关于 Serializable的探讨 前提引入 是由于软件测试上有同学提到说,什么该字段在程序刚运行时,导致jvm激增,所以吸引了我的注意 回顾代码 MybatisPlus Generator自动生成 ...

  5. kubenetes中的pod删除策略 级联删除与非级联删除

    StatefulSet 有状态应用[有状态应用] 有状态:StatefulSet - 集群节点之间的关系. - 数据不完全一致. - 实例之间不对等的关系. - 依靠外部存储的应用. - 通过dns维 ...

  6. redis 基础管理

    配置文件 优化redis配置文件定制 cat /nosql/redis/6379/redis.conf daemonize yes port 6379 logfile /nosql/redis/637 ...

  7. 用Python脚本迁移MongoDB数据到金仓-kingbase数据库

    1.首先需要明确MongoDB与kingbase的对应关系,collection相当于table,filed相当于字段,根据这个对应关系创建表: 此次迁移的MongoDB里的数据字段是:_id(自动生 ...

  8. MQTT服务器连接不上的问题

    问题描述 环境:阿里云服务器Ubuntu 22.04.3 LTS,安装mosquitto后,在虚拟机端订阅消息出现报错(以前用阿里云Ubuntu20.04 LTS的服务器装上就能用),以下服务器ip是 ...

  9. (拼多多)pdd的Anti-Content

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...

  10. kettle从入门到精通 第二十九课 job 循环 检验字段的值

    1.平常我们在用kettle设计job的时候,会用到循环来处理一些业务逻辑,比如循环检测某个表中的数据条数等.这个时候就会用到一个特别重要的步骤:检验字段的值. 下图是一个的通过初始化DNOE变量为f ...