逻辑回归处理因变量是分类变量的回归问题,主要用于两分类问题。两分类变量有1和0两个哑元值,其连接函数可定义为:

把取值在[0,1]之间的p变换到线性表示

可能取得全体实数范围。如果

,则

很显然,对于每个观测值我们预测的是

,而不是第i个观测值的水平(比如是0还是1,‘yes’还是'no',),这时就需要一个阈值

,使得当

的估计大于

时判定第i个观测值属于某一水平;否则,判定为另一水平。常设阈值

=0.5。

主要知识点:

1、散点图绘制,查看变量间关系;

2、建立训练数据集和测试数据集train_test_split;

3、导入模型并建模:model=LogisticRegression(),训练模型model.fit(x,y)

4、z=a+bx,截距a=model.intercept_ ,回归系数b=model.coef_

5、预测值 pred_y=1/(1+np.exp(-z))

6、回归特征只有1个时,构建模型,需要将数组转换为x行1列,numpy包中array.reshape(-1,1)改变数组形状。

下面进行举例学习,首先建立学习时间与分数的数据字典。

from collections import OrderedDict

import pandas as pd

#建立学习时间与分数的数据字典

examDict={'学习时间':[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50,

2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50],

'通过考试':[0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1]}

examOrderDict=OrderedDict(examDict)

examDf=pd.DataFrame(examOrderDict)

examDf.head()

提取特征和标签,绘制散点图

exam_X=examDf.loc[:,'学习时间']#特征

exam_y=examDf.loc[:,'通过考试']#标签

#绘制散点图

import matplotlib.pyplot as plt

#散点图

plt.scatter(exam_X,exam_y,color='b',label='exam data')

#添加图标标签

plt.xlabel('Hours')

plt.ylabel('Pass')

#显示图像

plt.show()

建立训练数据集和测试数据集

from sklearn.cross_validation import train_test_split

#建立训练数据和测试数据集

train_X,test_X,train_y,test_y=train_test_split(exam_X,exam_y,train_size=.8)

#输出数据大小

print('原始数据特征:',exam_X.shape ,

',训练数据特征:', train_X.shape ,

',测试数据特征:',test_X.shape )

print('原始数据标签:',exam_y.shape ,

'训练数据标签:', train_y.shape ,

'测试数据标签:' ,test_y.shape)

训练模型

训练模型之前需要先将数据特征转换为二维数组

#将训练集、测试集特征转换为二维数组X行,1列

train_X=train_X.values.reshape(-1,1)

test_X=test_X.values.reshape(-1,1)

#构建模型

#1、导入模型

from sklearn.linear_model import LogisticRegression

#2、创建模型:逻辑回归

model=LogisticRegression()

#3、训练模型

model.fit(train_X,train_y)

模型评估

model.score(test_X,test_y)

获取概率值,进一步理解什么是逻辑函数

model.predict_proba(5)

#特征是5小时,预测概率,将返回一个array数组

再次理解逻辑函数

#逻辑函数,回归方程 z=a+bx

a=model.intercept_

b=model.coef_

x=5

z=a+b*x

y_pred=1/(1+np.exp(-z))

y_pred

最终概率为0.83,说明预测特征是5小时的概率是0.83,标签返回结果表明通过考试。

python做逻辑回归r2_利用python实现逻辑回归相关推荐

  1. python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  2. python做股票分析_利用Python进行股票投资组合分析(调试)

    pythonsp500-robo-advisor-edition Python for Financial Analyses 需要的镜像文件和数据--Robo Advisor edition. 小结 ...

  3. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  4. python做excel宏_利用Python 开发 Excel 宏脚本的神器!

    今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python. 基本环境 操作系统:Windows 10 x64 ...

  5. python 做交易软件下载_利用python下载股票交易数据

    原博文 2017-02-06 22:45 − 前段时间玩Python时无意看到了获取股票交易数据的tushare模块,由于自己对股票交易挺有兴趣,加上现在又在做数据挖掘工作,故想先将股票数据下载到数据 ...

  6. 用python做一个宠物系统_利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗...

    导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今天就满足一下留过类似言的小伙伴的请求呗~不过感觉写桌面的挂历啥的没意思,就简单带大家做一只桌面宠物吧~ 废话不多说,让我们愉快地开始吧~ 开发 ...

  7. python做小波分析_如何利用python进行离散小波变换?

    大哥,你得先弄明白通俗上讲的DWT的意义. 连续小波变换是通过改变分析窗口的尺度,及时移动窗口,与信号相乘,并对所有时间进行积分来计算的.在离散情况下,采用不同截止频率的滤波器对信号进行不同尺度的分析 ...

  8. 用python做自我介绍_用python做个自我介绍(python入门教程)_逻辑教育

    原标题:用python做个自我介绍(python入门教程)_逻辑教育 本文涉及的python基础语法为:数据类型等 数字类型 1. 字符串的拼接 我们在上一章中已经简单介绍了一下字符串的创建方式,这里 ...

  9. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化

    转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...

最新文章

  1. AI产品经理必修——揭开算法的面纱(余弦定理)
  2. Visual Studio开发必备:扩展工具应用
  3. linux grep 点号的匹配
  4. FreeMark将long类型的时间格式化
  5. SuperSocket入门(二)- 探索AppServer、AppSession,Conmmand和App.config
  6. 两个python文件怎么联系在一起_【新手求助】怎样把两个程序连接在一起?老师作业,谢谢啦...
  7. std::make_unique<T>和std::make_shared<T>
  8. 卷积神经网络(高级篇) Inception Moudel
  9. 如何快速获取properties中的配置属性值
  10. vim中实现javascript代码自动完成功能
  11. Python: 如何继承str/string?
  12. 前端rem单位的使用研究
  13. Windows 无法删除文件夹的只读
  14. c#file过滤多种格式_[C#].NET/C#应用程序开发中使用Directory.GetFiles()过滤多种文件扩展名类型有哪些方法?...
  15. Spring mvc实现ex导入导出
  16. 本地Windows安装Navicat
  17. 计算机顶级水平,2009年的顶级电脑配置, 相当于中国现在电脑的什么水平?
  18. mysql 查询开始时间和结束时间是一个月的数据sql
  19. xp系统如何开启445端口?
  20. http 405原因

热门文章

  1. 细数Python三大“罪”!为什么编程能力比我好10倍的人都在夸它?
  2. 代码视角深入浅出理解 DevOps | 原力计划
  3. 渐进式 Web 应用程序是移动开发的未来吗?
  4. 她拒绝麦肯锡 Offer,建立图片训练数据库,斯坦福 AI 实验室负责人 | 人物志
  5. Google 杀死 URL 的第一步
  6. 如何避免腾讯云彻底搞丢“天价数据”事件再次发生?
  7. 加密货币究竟是不是泡沫?
  8. 程序员总被坑?这是GitHub上的一篇防骗指南
  9. 全球开发者调查:JavaScript 成最爱,还最喜欢用 React
  10. axi4协议的乱序_一篇文章读懂读透FPGA AXI4 总线协议