美文网首页
分类算法中多元分类

分类算法中多元分类

作者: 爱吃鱼的夏侯莲子 | 来源:发表于2020-01-23 14:59 被阅读0次

    判断垃圾邮件,这个分类问题的输出是[0, 1],只有固定的两个输出值,这称之为二元分类问题。
    在生活中有许多另外的分类问题,给定一张数字的图像,判断是数字几;自动将邮件归类,归为工作,朋友,家人等等,这就是一个多元分类问题了。

    原来的二元分类y\in[0,1],多元分类就需要扩展一下y\in[1,2,3,...,n]

    问题说明

    假如我们有一组训练集X,输出有三项y\in[1,2,3],我们可以将问题拆分成3个二元问题,在每一个问题中,预测y的输出值的概率;
    即先预测为1的概率,再预测为2的概率,再预测为3的概率,比较三个概率的大小,取其中最大的概率,就是y最可能的输出值。

    再一般化一点:
    y\in[1,2,3,...,n]
    y有n个输出,所以要分成n个二元问题,n个预测函数:
    h_\theta^{(1)}(x)=P(y=1|x; \theta) ;y=1的概率
    h_\theta^{(2)}(x)=P(y=2|x; \theta) ;y=2的概率
    ...
    h_\theta^{(n)}(x)=P(y=n|x; \theta) ;y=n的概率
    然后比较这n个预测函数的输出值,取其最大概率的一个。

    多元问题的输出

    在实际应用上,多元问题的输出并不是一个值,而是一个向量。
    例如:y\in[1,2,3]y的输出值有三个可能,因此,y的输出是一个三维的向量\left[ \begin{matrix} y_1 \\\ y_2 \\\ y_3 \end{matrix} \right],其中y_1,y_2,y_3\in[0,1],向量的三个值都是取0和1这两个值。
    比如说y=\left[ \begin{matrix} 1 \\\ 0 \\\ 0 \end{matrix} \right],就是说明y最大概率的值是1;y=\left[ \begin{matrix} 0 \\\ 0 \\\ 1 \end{matrix} \right],说明最大概率的值是3。

    举例说明

    在处理多元问题时,处理训练集的输出y时,应当将输出的实际标量转换成向量的形式:
    例如,y\in[1,2,3]y在1,2,3中选择。
    我们有5个样本集,忽略输入,观察到输出为:
    y=\left[ \begin{matrix} 2 \\\ 1 \\\ 1 \\\ 3 \\\ 2 \end{matrix} \right]
    要方便计算,将向量的各个值在转换一下:
    y=\left[ \begin{matrix} 0&1&0 \\\ 1&0&0 \\\ 1&0&0 \\\ 0&0&1 \\\ 0&1&0 \end{matrix} \right]
    可以看出原来是一个五维的向量,每个值是标量,经过转换后每一个标量都转成一个向量,形成的一个 5\times3 的矩阵,可以看到,第一行第二列的元素为1,其他为0,对应这原来y内的第一个标量2。以此类推,一一对应。

    这是训练集的输出,再看一下预测值的处理,经过分类算法的计算,得出的5个样本的预测函数值为:
    h_\theta(x)=\left[ \begin{matrix} 0.2&0.9&0.1 \\\ 0.78&0.13&0.3 \\\ 0.88&0.3&0.2 \\\ 0.2&0.1&0.92 \\\ 0.2&0.98&0.1 \end{matrix} \right]
    比较这个矩阵的每一行中三列,这三列就是三个预测函数的预测值。比较后记录下最大的值是第几列:
    h_\theta(x)=\left[ \begin{matrix} 2 \\\ 1 \\\ 1 \\\ 3 \\\ 2 \end{matrix} \right]
    这样就训练好了一个多元分类的样本集。

    转载自:
    https://codeeper.com/2020/01/15/tech/machine_learning/one_vs_all.html

    相关文章

      网友评论

          本文标题:分类算法中多元分类

          本文链接:https://www.haomeiwen.com/subject/ucenzctx.html