python逻辑回归模型建模步骤_Python逻辑回归——建模-评估模型
学完线性回归,逻辑回归建模+评估模型的过程就相对好理解很多。其实就是换汤不换药。
逻辑回归不是回归算法,而是分类算法,准确来说,叫逻辑分类
逻辑分类本质上是二分分类,即分类结果标签只有两个
逻辑回归建模-评估模型的过程
如何建立有序的二维数据结构
1.字典是无序的,所以引入一个OrderedDict来让顺序变成有序
2.数据集转成Pandas的二维数据结构进行处理
如何实现逻辑回归
1.提取出特征和标签
提取出某一列:loc (根据索引进行提取)
2.建立训练数据和测试数据
从样本中随机的按比例选取训练数据(train)和测试数据(test):
使用交叉验证(sklearn.model_selection)中的train_test_split
train_test_split三个参数:
第一个参数:所要划分的样本特征
第二个参数:所要划分的标签特征
第三个参数:train_size= (<0的小数:训练数据的占比 >0的整数:样本的数量)
x_train , x_test , y_train , y_test 各分配到一定比例的数据
3.使用训练数据训练模型
注意:sklearn要求输入的特征必须是二维数组的类型,但是因为我们目前只有1个特征,所以需要用安装错误提示用reshape转行成二维数组的类型
导入逻辑回归:使用sklearn.linear_model中的LogisticRegression
用LogisticRegression创建训练模型:model = LogisticRegression()
训练模型:用的是fit函数
model.fit(x_train , y_train)
4.使用测试数据进行模型评估
评估模型准确度 准确率 :score函数
model.score(x_test,y_test)
5.进一步理解什么是逻辑函数
预测数据的结果用predict: model.predict([[3]])
得出的结果要么0要么1
1)用predict_probe获取概率值
model.predict_proba([[3]])
输出结果第1个值是标签为0的概率值,第2个值是标签为1的概率值
2)用逻辑回归函数获取概率值
逻辑回归函数 第一步要得到z值
z=a+bx
a:截距 a=model.intercept_
b:回归系数 b=model.coef_
将z值带入逻辑回归函数中,得到概率值
y_pred=1/(1+np.exp(-z))
e:通过Numpy中的exp函数求得
逻辑回归代码
#建立有序的二维数据结构
import pandas as pd
from collections import OrderedDict
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]
}
examOrder=OrderedDict(examDict)
examDf=pd.DataFrame(examOrder)
examDf.head()
#1.提取出特征和标签
x_exam=examDf.loc[:,'学习时间']
y_exam=examDf.loc[:,'通过考试']
#2.建立训练数据和测试数据
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test=train_test_split(x_exam, y_exam, train_size=0.8)
print(x_exam.shape)
print(y_exam.shape)
print(x_train.shape)
print(x_test.shape)
print(y_train.shape)
print(y_test.shape)
#绘制测试数据和训练数据的散点图
import matplotlib.pyplot as plt
plt.scatter(x_train, y_train, color="blue", label="train data")
plt.scatter(x_test, y_test, color="red", label="test data")
plt.legend(loc=2)
plt.xlabel("Hours")
plt.ylabel("Pass")
plt.show()
#3.使用训练数据训练模型
x_train=x_train.reshape(-1,1)
y_train=y_train.reshape(-1,1)
from sklearn.linear_model import LogisticRegression
model=LogisticRegression()
model.fit(x_train, y_train)
#4.使用测试数据进行模型评估
x_test=x_test.reshape(-1,1)
y_test=y_test.reshape(-1,1)
model.score(x_test,y_test)
#5.计算模型的准确率
model.score(x_test,y_test)
#预测最终结果是通过还是不通过
model.predict([[3]])
#用predict_proba求出通过的概率值=算出z带入逻辑回归函数求出的概率值
#计算概率值得方法1
model.predict_proba([[3]])
#计算概率值得方法2
x=3
a=model.intercept_
b=model.coef_
z=a+b*x
#将z带入逻辑回归函数中,算出通过的概率值
import numpy as np
y_pred=1/(1+np.exp(-z))
y_pred
python逻辑回归模型建模步骤_Python逻辑回归——建模-评估模型相关推荐
- R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、xgboost模型预测推理并使用混淆矩阵评估模型、可视化模型预测的概率分布
R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.xgboost模型预测推理并使用混淆矩阵评估模型.可视化模型预测的概率分布 目录
- python表示逻辑与运算的关键字_Python 逻辑与位运算
简单的赋值和 print 留作课前预习,直接解读逻辑和位运算部分. 逻辑并不涉及高阶知识,以下基于部分代码作一解读: print((3 > 2) and (3 < 5)) 我们用 指代实数 ...
- python逻辑回归的主要参数_Python逻辑回归
Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数. 优点:计算代价不高,易于理解和实现. 缺点: ...
- python逻辑量是什么意思_python 逻辑术语
逻辑术语 在 python 中我们会用到下面的术语(字符或者词汇)来定义事物的真(True)或 者假(False).计算机的逻辑就是在程序的某个位置检查这些字符或者变量组合 在一起表达的结果是真是假. ...
- python如何定义一个函数选择题_Python逻辑题(以下10个选择题有唯一答案,请编写自定义函数judge遍历答案列表并报告正确答案),python,道,汇报...
python逻辑题(以下10道选择题有唯一答案,请编写自定义函数judge遍历答案列表并汇报正确答案) 1.题目.代码及答案演示 代码: 逻辑题 说明 :个人没用过 Jupyter Notebook ...
- python抽象基类的作用_Python:多态、鸭子模型和抽象基类
1. 多态 什么是多态 -- 多态,指的是一种事务具有多种形态: -- python是一种动态语言,默认支持多态,同一个方法 调用 不同的类对象 ,执行的 结果各不相同: 多态实现 -- 继承:不同子 ...
- python爬取网站数据步骤_python怎么爬取数据
在学习python的过程中,学会获取网站的内容是我们必须要掌握的知识和技能,今天就分享一下爬虫的基本流程,只有了解了过程,我们再慢慢一步步的去掌握它所包含的知识 Python网络爬虫大概需要以下几个步 ...
- python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...
本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...
- python简述文件的操作步骤_Python文件读取操作的详细介绍
本篇文章给大家带来的内容是关于Python文件读取操作的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读取文件的操作步骤 有一道脑筋急转弯,问把大象装进冰箱的步骤,答案很简 ...
最新文章
- 算法----------加一
- 实战tcpdump看RST
- LocaleResolver
- php怎么传json数据_php和js如何通过json互相传递数据相关问题探讨
- rabbitmq 相关方法
- TZOJ 2999 Network(连通图割点数量)
- pytorch冻结模型
- c语言ascii码表查询,ascii码表查询_ascii码表怎么看
- 大数据推荐系统(4)推荐算法
- 计算机高级筛选操作步骤,Excel中如何应用高级筛选,高级筛选的用法?
- 欧洲批准最强粒子对撞机计划,造价210亿欧元,全长100公里,耗资巨大引争议...
- 根据身份证号计算年龄 15位或18位身份证号的年龄计算方法
- 2022 知来者之可追
- iOS 全息备份研究
- 淘宝店铺装修之一怎样在自定义内容区做个商品图片轮播展示
- 兰州工业学院有计算机专业,兰州工业学院计算机协会
- TFTP服务器与客户端的安装
- java非必传参数怎么处理_SpringBoot 设置传入参数非必要的操作
- 计算机毕业设计Java印染公司信息管理系统(系统+程序+mysql数据库+Lw文档)
- margin带一个、二个、三个、四个参数不同的含义。