Classification
To learn more
接下来讲有关分类怎麼做这件事情,这边讲的是一个短的版本,因為时间有限的关係,如果你想要看长的版本的话,可以看一下过去上课的录影
过去可能是花两个小时,到三个小时的时间才讲完,分类这件事情,我们这边用一个最快的方法,直接跟你讲分类是怎麼做的
Classification as Regression?
分类是怎麼做的呢 我们已经讲了,Regression就是输入一个向量,然后输出一个数值,我们希望输出的数值跟某一个label,也就是我们要学习的目标,越接近越好,这门课里面,如果是正确的答案就有加Hat,Model的输出没有加Hat
有一个可能,假设你会用Regression的话,我们其实可以把Classification,当作是Regression来看
这个方法不一定是个好方法,这是一个比较奇妙的方法,输入一个东西以后,我们的输出仍然是一个scaler,它叫做y 然后这一个y,我们要让它跟正确答案,那个Class越接近越好,但是y是一个数字,我们怎麼让它跟Class越接近越好呢,我们必须把Class也变成数字
举例来说 Class1就是编号1,Class2就是编号2,Class3就是编号3,接下来呢 我们要做的事情,就是希望y可以跟Class的编号,越接近越好
但是这会是一个好方法吗,如果你仔细想想的话,这个方法也许在某些状况下,是会有瑕疵的
因為如果你假设说Class one就是编号1,Class two就是编号2,Class3就是编号3,意味著说你觉得Class1跟Class2是比较像,然后Class1跟Class3 它是比较不像,像这样子的表示Class的方式,有时候可行 有时候不可行
-
假设你的Class one two three真的有某种关係举例来说,你想要根据一个人的身高跟体重,然后预测他是几年级的小学生,一年级 二年级 还是三年级,那可能一年级真的跟二年级比较接近,一年级真的跟三年级比较没有关係
-
但是假设你的三个Class本身,并没有什麼特定的关係的话,你说Class one是1,Class two是2 Class two是3,那就很奇怪了,因為你这样是预设说,一二有比较近的关係,一三有比较远的关係,所以怎麼办呢
Class as one-hot vector
当你在做分类的问题的时候,比较常见的做法是把你的Class,用 One-hot vector来表示
如果有三个Class,我们的 label 这个ŷ,就是一个三维的向量,然后呢 如果是Class1就是 [ 1 0 0 ] \begin{bmatrix}{1} \\\ {0}\\\ {0}\end{bmatrix} ⎣⎡1 0 0⎦⎤,如果是Class2就是 [ 0 1 0 ] \begin{bmatrix} {0}\\\ {1}\\\ {0}\end{bmatrix} ⎣⎡