python 逻辑回归 summary_Python:简述逻辑回归(机器学习)

本问包括以下内容:逻辑回归

分类与回归的区别

小结

一、逻辑回归

1.逻辑回归:虽然名字叫“回归”,但它实际上是解决分类问题的。本质上是一个“回归”模型,因为逻辑回归它将「样本的特征」与「发生的概率」联系起来,而概率其实是一个数值。"逻辑回归"可以理解成一个分类型的回归算法。0.5为阈值,当y>0.5时标签为1,当y<0.5时标签为0

2.代码实战逻辑回归

(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()

(2)提取特征和标签

#特征features

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

#标签labes

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()

(3)建立训练数据集和测试数据集

from sklearn.model_selection import train_test_split

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

X_train , X_test , y_train , y_test = train_test_split(exam_X ,

exam_y ,

train_size = .8)

#输出数据大小

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

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

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

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

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

'测试数据标签:' ,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()

(4)用训练数据训练模型

因为只输入了一个特征,所以需要有reshape函数转化成reshape(-1,1)

#将训练数据特征转换成二维数组XX行*1列

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

#将测试数据特征转换成二维数组行数*1列

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

#第1步:导入逻辑回归

from sklearn.linear_model import LogisticRegression

# 第2步:创建模型:逻辑回归

model = LogisticRegression()

#第3步:训练模型

model.fit(X_train , y_train)

(5)模型评估

equation?tex=%E6%AD%A3%E7%A1%AE%E7%8E%87%3D%E6%AD%A3%E7%A1%AE%E5%88%86%E7%B1%BB%E4%B8%AA%E6%95%B0%5Cdiv%E6%95%B0%E6%8D%AE%E6%80%BB%E6%95%B0

3.理解逻辑回归

(1)当学习时间为3hours,用模型预测通过考试的概率值

model.predict_proba([[3]])

第1个值是标签为0的概率值,第2个值是标签为1的概率值

预测考试是否会通过

pred=model.predict([[3]])

print(pred)

(2)参数:截距、斜率

#第1步:得到回归方程的z值

#回归方程:z= + x

#截距

a=model.intercept_

#回归系数

b=model.coef_

x=3

z=a+b*x

#第2步:将z值带入逻辑回归函数中,得到概率值

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

print('预测的概率值:',y_pred)

二、分类与回归的区别

1.三中数据类型

2.分类与回归三大区别

三、小结


版权声明:本文为weixin_42153793原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。