文章目录
作用:使用回归算法进行分类任务
思想:将回归值转为概率值,然后找到一个适当的数值,当概率大于这个值时,归为一类,当小于这个值时,归为另一类

函数的输入值为特征的加权和 
是sigmoid函数,公式为

函数图像为

可见它输出一个0-1的值,我们可以将这个值当作概率
则我们可以通过这个概率来分类,设定一个值,在这个值的两端进行分类
当p>=0.5时

当p<0.5时

![J(w)=\frac{1}{m}\sum_{i=1}^{m}[y^{i}log(p^{i})+(1-y^{i})log(1-p^{i})]](https://1000bd.com/contentImg/2023/11/18/073310676.png)
这个损失函数也是一个凸函数,可以使用梯度下降法使损失最小化
鸢尾花数据集是机器学习中一个经典的数据集,它有花瓣和花萼的长和宽,任务是用它们来判断鸢尾花的种类
看代码和效果
- from sklearn import datasets
- from sklearn.linear_model import LogisticRegression
- import matplotlib.pyplot as plt
- import numpy as np
-
-
- iris = datasets.load_iris()
-
- x = iris["data"][:, 3:]
- y = (iris["target"] == 2)
-
- model = LogisticRegression()
- model.fit(x, y)
-
- x_new = np.linspace(0, 3, 1000).reshape(-1, 1)
- y_proba = model.predict_proba(x_new)
- plt.plot(x_new, y_proba[:, 1], "g-", label="Iris virginica")
- plt.plot(x_new, y_proba[:, 0], "b--", label="Not Iris virginica")
-
- plt.xlabel("Petal width")
- plt.ylabel("probability")
-
- plt.legend()
- plt.show()

可以看见,当花瓣长度变化的时候,两种花种类的概率随之变化
简单介绍一下新的代码,predict.proba方法返回样本为可能的两种花的概率。
上述方法主要用于二分类任务,我们再来看一种多分类方法,Softmax回归

Softmax函数也叫指数归一化函数,它对x进行指数处理再进行归一化得出一个概率
这个函数的自变量为一个分数s,这个s由我们的数据的转置矩阵与一个参数相乘得来

对于不同的类,参数
都不相同,模型训练的任务就是拟合这个参数

当k=2时(二分类),此成本函数等于sigmoid逻辑回归的成本函数
- model = LogisticRegression(multi_class="multinomial", solver="lbfgs", C=10)
- model.fit(x, y)
multi_class="multinomial": 表示采用多类别分类,即多类别的逻辑回归问题,与二元逻辑回归不同。
solver="lbfgs": 表示使用LBFGS(Limited-memory Broyden–Fletcher–Goldfarb–Shanno)优化算法进行求解。
C=10: 表示正则化参数,控制模型的正则化强度,C值越小,正则化强度越高。
逻辑回归是一种简单的分类方法,二分类任务就用第一种方法,多分类任务就用第二种方法