第五讲_多分类回归

多分类问题

Softmax regression

如手写字体识别等

数据

x可以多维,一个y(不同的类用不同的数值表示)

首先需要将y的标签转换为one-hot向量

1
2
3
4
5
6
7
8
9
10
11
12
import torch

# 创建原始张量
y = torch.tensor([0, 1, 2])
# 创建一个全零的 one - hot 编码张量
y_onehot = torch.zeros(len(y), 3)
# 执行 scatter 操作来进行 one - hot 编码
y_onehot.scatter_(1, y.unsqueeze(1), 1)
print(y_onehot)
# tensor([[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]])
三种类别的空间距离是相等的,消除了数值之间的差异带来的影响

模型

使用三个线性模型来实现(有几个类型就用几个线性模型)

公式:

对于每个模型来说,实现的功能都是判断是否属于对应的一类(属于/不属于),是一个二分类问题

很多个二分类合在一起构成一个多分类问题

Softmax Function---激活函数

使用Sotfmax函数,把线性模型的输出转化为概率

需要将输出的z转为正数,但是不能改变数值之间的大小关系,所以使用 \[e^z\] 来表示

同时要注意概率求和结果为 1

softmax函数---可以理解为激活函数

损失函数

交叉熵损失函数 Cross entropy

公式

  • 损失函数: ![alt text](https://pic.imgdb.cn/item/66ebe7dbf21886ccc0ca4669.png)

  • 代价函数:

优化算法

优化算法还是跟之前一样,使用梯度下降

计算梯度

总结一下:

第五讲补充

K Nearest Neighbors

K近邻算法是一种分类算法,其基本思想是:

  1. 找出距离待测数据最近的K个样本点;
  2. 统计这K个样本点中属于不同类别的样本点个数;
  3. 将待测数据分配到距离最近的K个样本点中类别数最多的那个类别中。
  4. K的选取:
  • K的选取一般取奇数,因为偶数个样本点中,类别数相同的概率较小---这句话没搞懂,老师也没说,不具有科学性

算法的缺点是计算量比较大,比较费时间


第五讲_多分类回归
http://jrhu0048.github.io/2024/09/25/ji-qi-xue-xi/di-wu-jiang-duo-fen-lei-hui-gui/
作者
JR.HU
发布于
2024年9月25日
更新于
2024年10月16日
许可协议