本问包括以下内容:逻辑回归
分类与回归的区别
小结
一、逻辑回归
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)模型评估
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.分类与回归三大区别
三、小结