分类算法中多元分类
判断垃圾邮件,这个分类问题的输出是[0, 1],只有固定的两个输出值,这称之为二元分类问题。
在生活中有许多另外的分类问题,给定一张数字的图像,判断是数字几;自动将邮件归类,归为工作,朋友,家人等等,这就是一个多元分类问题了。
原来的二元分类,多元分类就需要扩展一下
问题说明
假如我们有一组训练集,输出有三项,我们可以将问题拆分成3个二元问题,在每一个问题中,预测的输出值的概率;
即先预测为1的概率,再预测为2的概率,再预测为3的概率,比较三个概率的大小,取其中最大的概率,就是最可能的输出值。
再一般化一点:
y有n个输出,所以要分成n个二元问题,n个预测函数:
;y=1的概率
;y=2的概率
...
;y=n的概率
然后比较这n个预测函数的输出值,取其最大概率的一个。
多元问题的输出
在实际应用上,多元问题的输出并不是一个值,而是一个向量。
例如:,的输出值有三个可能,因此,的输出是一个三维的向量,其中,向量的三个值都是取0和1这两个值。
比如说,就是说明y最大概率的值是1;,说明最大概率的值是3。
举例说明
在处理多元问题时,处理训练集的输出时,应当将输出的实际标量转换成向量的形式:
例如,,在1,2,3中选择。
我们有5个样本集,忽略输入,观察到输出为:
要方便计算,将向量的各个值在转换一下:
可以看出原来是一个五维的向量,每个值是标量,经过转换后每一个标量都转成一个向量,形成的一个 的矩阵,可以看到,第一行第二列的元素为1,其他为0,对应这原来y内的第一个标量2。以此类推,一一对应。
这是训练集的输出,再看一下预测值的处理,经过分类算法的计算,得出的5个样本的预测函数值为:
比较这个矩阵的每一行中三列,这三列就是三个预测函数的预测值。比较后记录下最大的值是第几列:
这样就训练好了一个多元分类的样本集。
转载自:
https://codeeper.com/2020/01/15/tech/machine_learning/one_vs_all.html