python 数据分析基础 day19-使用statsmodels进行逻辑回归

今天是读《python数据分析基础》的第19天,读书笔记内容为使用statsmodels进行逻辑回归。 以下代码将按数据清洗、训练模型、得出测试集的预测值这三个步骤展示 逻辑回归模型的使用。

注: 1.数据来源于https://github.com/cbrownley/foundations-for-analytics-with-python/tree/master/statistics/churn.csv 2.使用statsmodels构建逻辑回归模型之前,需要手动为自变量添加常数项

#使用逻辑回归预测客户流失概率

import pandas as pd
import numpy as np
import statsmodels.api as sma 

#导入数据
inputCsv='数据路径'
churn=pd.read_csv(inputCsv)


#数据预处理
#将列标题的空格替换为下划线,将引号和问号去除,标题字母变为小写
churn.columns=churn.columns.str.replace(' ','_').str.replace('\'','').str.strip('?').str.lower()
#将churn字段值中'.'删除,
churn.churn=churn.churn.str.strip('.')
#print(churn.head(5))
#新增一个字段,将churn字段转换为01编码字段
churn['churn01']=np.where(churn.churn=='True',1,0)
#对字段intl_plan及vmail_plan进行独热编码(新增虚拟变量)
intl_plan_dummy=pd.get_dummies(churn.intl_plan,prefix='intl_plan')
vmail_plan_dummy=pd.get_dummies(churn.vmail_plan,prefix='vmail_plan')
#添加常数项及生成自变量和因变量
churnInd=sma.add_constant(churn[churn.columns.difference(['intl_plan','vmail_plan','churn01','churn','state','phone','account_length','area_code'])].join(intl_plan_dummy.intl_plan_yes).join(vmail_plan_dummy.vmail_plan_yes))
churnDep=churn['churn01']


#将数据划分为训练集和测试集,训练集为第一行至倒数第10行,测试集为最后10行
churnIndTrain=churnInd.iloc[0:-10,:]
churnDepTrain=churnDep.iloc[0:-10]
churnIndTest=churnInd.tail(10)


#根据训练集训练获取模型参数
lr=sma.Logit(churnDepTrain,churnIndTrain)
result=lr.fit()
print(result.summary2())


#根据模型获取测试集结果
predictedValue=lr.fit().predict(churnIndTest)
compare=pd.DataFrame({'predictedValue':predictedValue,'actualValue':churnDep.tail(10)})
print(compare)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数说戏聊

Tableau基础知识1.文件与数据1.1 Tableau文件类型2.制表3.绘图

1322
来自专栏QQ音乐技术团队的专栏

GIF简述及其在QQ音乐的应用

GIF(Graphics Interchange Format)是CompuServe公司在1987年开发的图像文件格式,原义是图像互换格式。GIF是一种基于L...

7480
来自专栏诸葛青云的专栏

Python识别验证码!学会这步,百分之60的网站你基本都能识别了!

127是我们设定的阈值,像素值大于127被置成了0,小于127的被置成了255。处理后的图片变成了这样

1370
来自专栏落影的专栏

Metal入门教程(七)天空盒全景

Metal入门教程(一)图片绘制 Metal入门教程(二)三维变换 Metal入门教程(三)摄像头采集渲染 Metal入门教程(四)灰度计算 Metal入门教程...

3083
来自专栏IT派

最新|官方发布:TensorFlow 数据集和估算器介绍

TensorFlow 1.3 引入了两个重要功能,您应当尝试一下: 数据集:一种创建输入管道(即,将数据读入您的程序)的全新方式。 估算器:一种创建 Tens...

4395
来自专栏新智元

PyTorch 最新版发布:API 变动,增加新特征,多项运算和加载速度提升

【新智元导读】PyTorch 发布了最新版,API 有一些变动,增加了一系列新的特征,多项运算或加载速度提升,而且修改了大量bug。官方文档也提供了一些示例。 ...

6417
来自专栏绿巨人专栏

机器学习实战 - 读书笔记(04) - 朴素贝叶斯

3027
来自专栏北京马哥教育

Kmeans聚类代码实现及优化

云豆贴心提醒,本文阅读时间6分钟 这篇文章直接给出上次关于Kmeans聚类的篮球远动员数据分析案例,最后介绍Matplotlib包绘图的优化知识。 希望这篇文...

3375
来自专栏逍遥剑客的游戏开发

Nebula3中的模型

1397
来自专栏人工智能LeadAI

数据分析中的可视化-常见图形

import matplotlib.pyplot as plt import pandas as pd from pandas import Series, D...

1302

扫码关注云+社区

领取腾讯云代金券