python 逻辑回归分类_机器学习-逻辑回归分类

分类问题: 1) 本质:决策面(decision surface)2)评估分类算法的指标,正确率=正确分类个数/总数

二分分类:逻辑回归输入:训练数据的特征和标签--->>>模型:逻辑回归---->>>输出:分类结果

什么是逻辑函数?

在0到1之间取值,逻辑回归是因为参数是逻辑函数

逻辑的数值:表示分类结果是1是Y的结果

决策面:大于等于0.5 或 小于0.5

3.Python的逻辑回归分类做法建立数据集

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()from collections import OrderedDict

import pandas as pd提取特征和标签

#特征features

exam_x=examdf.loc[:,'学习时间']

#标签labels

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

Output:

原始数据特征: (20,) ,训练数据特征: (16,) ,测试数据特征: (4,)

原始数据标签: (20,) 训练数据标签: (16,) 测试数据标签: (4,)

#绘制散点图

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()评估模型(用测试数据)

#评估模型:准确率

model.score(x_test,y_test)

0.75逻辑函数

#获取概率值

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

model.predict_proba(4)

array([[0.27173471, 0.72826529]])

#预测数据:使用模型的predict方法可以进行预测。

我们输入学生的特征学习时间4小时,模型返回结果标签是1,就代表预测该学生未通过考试。

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

print(pred)

[1]这个预测值是如何得到的?运用逻辑回归函数展示一下

import numpy as np

#第1步:得到回归方程的z值(假设我们X=4,即4个小时)

#回归方程:z= + x

#截距

a=model.intercept_

#回归系数

b=model.coef_

x=4

z=a+b*x

#第2步:将z值带入逻辑回归函数中,得到概率值(预测是1的概率)

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

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

预测的概率值: [[0.72826529]]

与之前的预测概率值是吻合的!

4.分类和回归有什么区别?

首先要有3种数据类型

1.数值数据(定量数据)--离散数据,连续数据

2.分类数据(定性数据)

3.时间序列数据

5. 总结

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值