机器学习(七)——逻辑回归

本文深入探讨逻辑回归原理,将其视为多元线性回归的变形,适用于二分类问题。通过鸢尾花数据集,展示如何使用sklearn库进行二分类及多分类预测,并附带代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 逻辑回归

逻辑回归就是对多元线性回归的缩放
在这里插入图片描述
公式如上图,其中t就是多元线性回归的公式:w的转置 * X,逻辑回归的y的取值范围为(0,1),而多元线性回归的y的取值范围是负无穷到正无穷

逻辑回归适合做二分类,用0.5做间隔,大于0.5是一类,小于0.5是另一类

知识点:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码实现鸢尾花案例——二分类:



import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
import matplotlib.pyplot as plt
from time import time

iris = datasets.load_iris()  # 鸢尾花数据集,可以点进源码看一下,介绍的很详细
# print(list(iris.keys()))  # ['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename']
# print(iris['DESCR'])  # 从结果中可以看出,花瓣petal的长度和宽度和结果的相关性更高,所以花萼的数据就可以不要了
# print(iris['feature_names'])  # 特征名 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

X = iris['data'][:, 3:]  # 取花瓣宽度这一列数据
# print(X)
#
# print(iris['target'])
y = iris['target']
# print(y)

# multi_class='ovr'是二分类,还可以选择多分类;solver="sag"表示用梯度下降的方法
log_reg = LogisticRegression(multi_class='ovr', solver="sag")
log_reg.fit(X, y)


X_new = np.linspace(0, 3, 1000).reshape(-1, 1)  # 在(0,3)区间内平均分成1000段,取这1000个点作为x
# print(X_new)

y_proba = log_reg.predict_proba(X_new)  # 预测分类概率
y_hat = log_reg.predict(X_new)  # 预测分类号
# print(y_proba)
# print(y_hat)

plt.plot(X_new, y_proba[:, 2], 'g-', label='Iris-Virginica')
plt.plot(X_new, y_proba[:, 1], 'r-', label='Iris-Versicolour')
plt.plot(X_new, y_proba[:, 0], 'b--', label='Iris-Setosa')
plt.show()

print(log_reg.predict([[1.7], [1.5]]))


输出结果:[ 2 , 1 ]
在这里插入图片描述

用逻辑回归做多分类:就是把一个多分类转化为多个二分类
在这里插入图片描述
假设要做一个三分类:就是做三次二分类,取三个结果中的概率最大者为最终结果
总结:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值