python做逻辑回归r2_利用python实现逻辑回归
逻辑回归处理因变量是分类变量的回归问题,主要用于两分类问题。两分类变量有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实现逻辑回归相关推荐
- python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...
相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...
- python做股票分析_利用Python进行股票投资组合分析(调试)
pythonsp500-robo-advisor-edition Python for Financial Analyses 需要的镜像文件和数据--Robo Advisor edition. 小结 ...
- 用python做头像_如何利用python制作微信好友头像照片墙?
这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...
- python做excel宏_利用Python 开发 Excel 宏脚本的神器!
今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python. 基本环境 操作系统:Windows 10 x64 ...
- python 做交易软件下载_利用python下载股票交易数据
原博文 2017-02-06 22:45 − 前段时间玩Python时无意看到了获取股票交易数据的tushare模块,由于自己对股票交易挺有兴趣,加上现在又在做数据挖掘工作,故想先将股票数据下载到数据 ...
- 用python做一个宠物系统_利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗...
导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今天就满足一下留过类似言的小伙伴的请求呗~不过感觉写桌面的挂历啥的没意思,就简单带大家做一只桌面宠物吧~ 废话不多说,让我们愉快地开始吧~ 开发 ...
- python做小波分析_如何利用python进行离散小波变换?
大哥,你得先弄明白通俗上讲的DWT的意义. 连续小波变换是通过改变分析窗口的尺度,及时移动窗口,与信号相乘,并对所有时间进行积分来计算的.在离散情况下,采用不同截止频率的滤波器对信号进行不同尺度的分析 ...
- 用python做自我介绍_用python做个自我介绍(python入门教程)_逻辑教育
原标题:用python做个自我介绍(python入门教程)_逻辑教育 本文涉及的python基础语法为:数据类型等 数字类型 1. 字符串的拼接 我们在上一章中已经简单介绍了一下字符串的创建方式,这里 ...
- python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化
转自:http://www.jackyshen.com/2015/05/21/async-operations-in-form-of-sync-programming-with-python-yiel ...
最新文章
- AI产品经理必修——揭开算法的面纱(余弦定理)
- Visual Studio开发必备:扩展工具应用
- linux grep 点号的匹配
- FreeMark将long类型的时间格式化
- SuperSocket入门(二)- 探索AppServer、AppSession,Conmmand和App.config
- 两个python文件怎么联系在一起_【新手求助】怎样把两个程序连接在一起?老师作业,谢谢啦...
- std::make_unique<T>和std::make_shared<T>
- 卷积神经网络(高级篇) Inception Moudel
- 如何快速获取properties中的配置属性值
- vim中实现javascript代码自动完成功能
- Python: 如何继承str/string?
- 前端rem单位的使用研究
- Windows 无法删除文件夹的只读
- c#file过滤多种格式_[C#].NET/C#应用程序开发中使用Directory.GetFiles()过滤多种文件扩展名类型有哪些方法?...
- Spring mvc实现ex导入导出
- 本地Windows安装Navicat
- 计算机顶级水平,2009年的顶级电脑配置, 相当于中国现在电脑的什么水平?
- mysql 查询开始时间和结束时间是一个月的数据sql
- xp系统如何开启445端口?
- http 405原因
热门文章
- 细数Python三大“罪”!为什么编程能力比我好10倍的人都在夸它?
- 代码视角深入浅出理解 DevOps | 原力计划
- 渐进式 Web 应用程序是移动开发的未来吗?
- 她拒绝麦肯锡 Offer,建立图片训练数据库,斯坦福 AI 实验室负责人 | 人物志
- Google 杀死 URL 的第一步
- 如何避免腾讯云彻底搞丢“天价数据”事件再次发生?
- 加密货币究竟是不是泡沫?
- 程序员总被坑?这是GitHub上的一篇防骗指南
- 全球开发者调查:JavaScript 成最爱,还最喜欢用 React
- axi4协议的乱序_一篇文章读懂读透FPGA AXI4 总线协议