机器学习-线性回归-softmax回归 做多分类-10

发布时间 2023-12-16 12:18:43作者: jack-chen666

1. softmax回归

伯努利分布(0-1分布 二分类),我们采用Logistic回归(用sigmoid函数映射到 0-1之间 输出预测概率)建模。
那么我们应该如何处理多分类问题?(比如要进行邮件分类;预测病情属于哪一类等等)。对于这种多项式分布我们使用softmax回归建模。

什么是多项分布?

多项式分布的目标值yε{1,2,3,...,k};(其中k是类别种数)其概率分布为:
并且:

联合分布的概率函数为:于是,多项分布转变为指数分布族的推导如下:

注意:
代表属于某一类发生的次数

代表某一类发生的概率

公式继续推导:

其中:

我们的目标是要计算出


至此,我们就得到了softmax回归的公式:

任意一条样本xi都能计算出 对应 k个分类的 概率
注意:这里的theta(也就是待求解的模型参数)是一个k行n列的矩阵。 k行是因为有k个分类, n列是应为x有n个维度

softmax多分类的原理:

交叉上损失函数:

m条样本 落在 1-k 类 类别里面
落入1类里面的次数 对应的概率φ1
落入2类里面的次数 对应的概率φ2
...
落入k类里面的次数 对应的概率φk
全部相乘

取对数:

总结:
多分类 使用 one-vs-rest 将多分类拆解成多个二分类 分别输出属于某一类的概率
例如:x有4个维度 4类 拆开成 6个二分类 输出 p1 p2 p3 p4作出预测
求解参数个数 4 * 6 = 24

使用softmax 多项式回归
exp(theta_1 * Xi ) exp(theta_2 * Xi ) exp(theta_3 * Xi ) exp(theta_4 * Xi ) / 总和 输出概率做预测
theta_1 theta_2 ... theta_4
4*4 = 16个参数需要计算