python数据分析——逻辑回归

参考资料:活用pandas库

逻辑回归

        当响应变量为二值响应变量时,经常使用逻辑回归对数据建模。

# 导入pandas库
import pandas as pd
# 导入数据集
acs=pd.read_csv(r"...\data\acs_ny.csv")
# 展示数据列
print(acs.columns)
# 展示数据集
print(acs.head())acs['ge150k']=pd.cut(acs['FamilyIncome'],[0,150000,acs['FamilyIncome'].max()],labels=[0,1])
acs['ge150k_i']=acs['ge150k'].astype(int)
print(acs['ge150k_i'].value_counts())
print(acs.info())

(1)使用statsmodels

        可以使用logit函数执行逻辑回归。解释逻辑回归的结果并不像解释线性回归那样简单。在逻辑回归中,与所有广义线性模型一样,都需要使用连接函数执行一定的转换,而解释结果时需要回到转换之前的状态。

# 导入formula.api模块
import statsmodels.formula.api as smf
# 逻辑回归拟合
model=smf.logit("ge150k_i~HouseCosts+ NumWorkers+ "\"OwnRent+ NumBedrooms+ FamilyType",data=acs)
results=model.fit()
print(results.summary())

# 导入numpy库
import numpy as np# 为了解释逻辑模型,首先需要把结果指数化
odds_ratios=np.exp(results.params)
print(odds_ratios)

        对于这些数字的解释:NumBedrooms每增加一个单元,FamilyIncome超过150000的概率就会增加1.27倍。也可以如此解释分类变量。

(2)使用sklearn

        使用sklearn时,需要手动创建虚拟变量。

# 用get_dummies函数对分类变量创建虚拟变量
predictors=pd.get_dummies(acs[['HouseCosts','NumWorkers','OwnRent','NumBedrooms','FamilyType']],drop_first=True)
# 导入linear_model模块
from sklearn import linear_model
# 逻辑回归拟合
lm=linear_model.LogisticRegression()
results=lm.fit(X=predictors,y=acs['ge150k_i'])
# 查看系数
print(results.coef_)
print(results.intercept_)
# 调整系数的输出格式
values=np.append(results.intercept_,results.coef_)
names=np.append("intercept",predictors.columns)
results=pd.DataFrame(values,index=names,columns=['coef'])
print(results)
# 为了解释系数,还需要把值指数化
results['or']=np.exp(results['coef'])
print(results)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[数据集][图像分类]茶叶叶子病害分类数据集304张4类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):304 分类类别数:4 类别名称:[“anthracnose”,“bird_eye_spot”…

功效系数法

功效系数法(Efficacy Coefficient Method)是一种综合评价方法,它根据多目标规划的原理,对每个评价指标确定一个满意值和不允许值,以满意值为上限,以不允许值为下限。计算各指标实现满意值的程度&#xff0c…

阿里云 动态ddns

环境 nodejs版本不低于10.16 系统window,centos 均可 package.json {"name": "aliyun-ddns","version": "2.1.0","main": "ddns.js","scripts": {"start": "node ddns.js&…

ant-design vue3 中上传图片组件的回传图片显示问题

最近在做web端的上传图片 有一个数据列表中的编辑功能 是之前上传的图片 点击编辑进入编辑页面 会显示之前写的数据 现在需要把原来上传的图片 显示出来 因为之前给后端上传的 图片格式 是一个数组 ["图片链接",“图片链接”。。。] 后端给我返回的数据也…

ESP32 ESP8266 Arduino开发环境离线安装

在下面链接中详细介绍了ESP32 ESP8266在线安装方法, 智能红外遥控器(二): Arduino环境搭建及库安装_arduino ide 1.8.13-CSDN博客 但是由于在线安装受国外服务器的影响很多时间会不成功,下面介绍使用离线安装包的方法…

AI视频教程下载:给初学者的ChatGPT提示词技巧

你是否厌倦了花费数小时在可以通过强大的语言模型自动化的琐碎任务上?你是否准备好利用 ChatGPT——世界上最先进的语言模型——并将你的生产力提升到下一个水平? ChatGPT 是语言处理领域的游戏规则改变者,它能够理解并响应自然语言&#xf…

机器学习ML.NET

适用于 .NET 的机器学习 ML.NET 是用于 .NET 的跨平台开源机器学习 (ML) 框架。 ML.NET 允许开发人员在其 .NET 应用程序中轻松构建、训练、部署和使用自定义模型,而无需开发机器学习模型的专业知识或使用 Python 或 R 等其他编程语言的经验。该框架提供从文件和数据库加载…

学习笔记 SD卡(1)

SD:Secure Digital Card 安全数据卡 本质:nand flash 控制芯片 SD卡三种系列:SD卡(FULL SIZE)MINISD卡 MicroSD卡 特点:容量大 高安全性 体积小 传输速度快 接口简单 SD卡储存容量等级 SD卡类型协议规范文件系统…

百度之星题目记录

目录 1 介绍2 训练3 参考 1 介绍 本博客记录百度之星比赛的题目及解法。 2 训练 题目1:BD202301公园 C代码如下, 解题思路:计算起始结点a到所有结点的最小距离(因为是等长边,所以可以用bfs)&#xff0…

JVM运行时数据区 - 本地方法栈

在JDK自带的方法库中常常看到被native修饰的方法,这些方法没有方法体实现,它们方法体通常是由C/C语言实现,这种方法称为本地方法。 在JVM规范中,本地方法也有和Java方法一样的方法调用栈,称为本地方法栈。由于规范对本…

JavaWeb基础(JQuery,XML及解析)

这个阶段有点拖沓了,因为事情比较多,耽搁了一段时间,学习的主要内容为JQuery和XML,因为vue的出现,JQuery技术现在已经不流行了,但是不流行不代表我不会,JQuery最最最最核心的就是他的$()核心函数…

十大排序 —— 希尔排序

十大排序 —— 希尔排序 什么是希尔排序插入排序希尔排序递归版本 我们今天来看另一个很有名的排序——希尔排序 什么是希尔排序 希尔排序(Shell Sort)是插入排序的一种更高效的改进版本,由Donald Shell于1959年提出。它通过比较相距一定间…

路由策略案例

一、路由策略案例 如图所示,某公司内终端通过Switch接入公司内部网络。如果该公司内存在非如图1所示,运行OSPF协议的网络中,RouterA从Internet网络接收路由,并头RouterB提供了部分Internet路由。其中: RouterA仅提供172.1…

工厂模式——工厂方法模式+注册表

工厂方法模式的瑕疵 在前一篇笔记中我们介绍了工厂方法模式,示例的类图如下: 考虑一种情况:现在要在程序运行时,根据外部资源,动态的实例化对象。也就是说在编译期我们无法知道要实例化的对象的类型。因此在实例化的过…

Java 新手入门:基础知识点一览

Java 新手入门:基础知识点一览 想要踏入 Java 的编程世界?别担心,这篇文章将用简单易懂的表格形式,带你快速了解 Java 的基础知识点。 一、Java 是什么? 概念解释Java一种面向对象的编程语言,拥有跨平台、…

男人只需布局三年,就没人敢瞧不起你

一、每天布局:1、每天坚持早睡早起。晚上23:00前睡,早上6:00前起,坚持用心中的梦想唤醒自己。2、每天坚持阅读。尤其要读名人传记,用名人的经历启迪自己,站在巨人的肩上看世界。3、每天坚持按日程计划行事。…

JDBC操作数据库

JDBC操作数据库 JdbcTemplate是Spring框架提供的一个对JDBC进行封装的工具类,它用于简化JDBC的使用。 以下是使用JdbcTemplate操作数据库的一些常见方法: 1、使用JdbcTemplate插入数据: Autowired private JdbcTemplate jdbcTemplate;pub…

JDBC-MySQL

JDBC-MySQL 1.JDBC 操作步骤1.1 DriverManager1.2.Connection对象1.3 Statement1.4 PreparedStatement 1.JDBC 操作步骤 public void quickStart() throws ClassNotFoundException, SQLException {//1、注册驱动 (确认要使用哪个数据库)Class.forName(&…

嵌入式中,日志调试法的一些规则!

日志调试法是嵌入式系统开发中常用的一种调试手段,它通过在代码中添加日志信息来记录程序的运行状态,帮助开发者了解程序在运行过程中的行为,从而定位问题所在。以下是一些嵌入式日志调试的基本规则和示例代码。 日志调试的基本规则 确定日志…

C++使用QtHttpServer开发服务端Server的Http POST接口和客户端Client示例

Client HTTP POST 假设http://127.0.0.1:8888/post/是一个能够接受POST请求的路径,我们想要向它提交一段json数据,用Qt可以这样实现: Suppose we want to make an HTTP POST with json body to http://127.0.0.1:8888/post/. QCoreApplica…