【机器学习】逻辑回归logit与softmax

36 篇文章 5 订阅
27 篇文章 3 订阅

模型训练导航:
【机器学习】模型训练:scikitLearn线性模型的公式法与三种梯度下降法求解
【机器学习】欠拟合及过拟合与学习曲线、误差来源
【机器学习】scikitLearn正则化l1,l2,提前停止

逻辑回归(Logistic回归,也称为Logit回归)被广泛用于估算一个实例属于某个特定类别的概率。
与线性回归模型一样,逻辑回归模型也是计算输入特征的加权和(加上偏置项),但是不同于线性回归模型直接输出结果,它输出的是结果的数理逻辑值。
数理逻辑函数sigmoid:输出的值是0到1的数理逻辑值
在这里插入图片描述
当t<0时,σ(t)<0.5;当t≥0时,σ(t)≥0.5。所以如果是正类,逻辑回归模型预测结果是1,如果是负类,则预测为0。

在这里插入图片描述
变形为:
在这里插入图片描述
左侧是正例与负例概率比取对数,名为logit函数。

训练逻辑回归的成本函数为:
在这里插入图片描述
我们假定概率值0代表负类,概率值1代表正类。
上述函数保证了如果正类的概率值被判定接近0,及负类的概率接近1,成本函数的值都会非常高。

这是个凸函数,所以通过梯度下降(或是其他任意优化算法)保证能够找出全局最小值。

这其实是交叉熵在2分类中特殊的表示形式,其一般形式为:
在这里插入图片描述
交叉熵的值越小,y和y预测这两个分布间越接近。
对应代码:

from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression(solver="lbfgs", random_state=42)
log_reg.fit(X, y)

Softmax回归:逻辑回归的推广
逻辑回归模型经过推广,可以直接支持多个类别,而不需要训练并组合多个二元分类器。
原理很简单:给定一个实例x,Softmax回归模型首先计算出每个类k的分数sk(x),然后对这些分数应用softmax函数(也叫归一化指数),估算出每个类的概率。
Softmax回归分类器预测具有最高估计概率的类(简单来说就是得分最高的类)
Softmax回归分类器一次只能预测一个类(即它是多类,而不是多输出),因此它只能与互斥的类(例如不同类型的植物)一起使用。
在这里插入图片描述
训练时同样采用交叉熵函数作为成本函数。(交叉熵与相对熵仅差一个常数,一般均使用交叉熵)
当用两个以上的类训练时,Scikit-Learn的LogisticRegressio默认选择使用的是一对多的训练方式,不过将超参数multi_class设置为"multinomial",可以将其切换成Softmax回归。

X = iris["data"][:, (2, 3)]  # petal length, petal width
y = iris["target"]

softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10, random_state=42)
softmax_reg.fit(X, y)

C值越高,对模型正则化要求越少。

softmax_reg.predict_proba([[5, 2]])
array([[6.38014896e-07, 5.74929995e-02, 9.42506362e-01]])

得出结果为3者的概率值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值