1、什麼是one_hot?
one-hot編碼:是將類別變量轉換爲機器學習算法中容易處理的一種形式!
看個例子便於理解:
index | fruit |
1 | apple |
2 | banana |
3 | strawberry |
4 | watermelon |
一、one_hot的形式無法比較
如上表所示;如果我們預測的標籤是:fruit 列的四個水果,直接看的話,我們人類是很容易區分它們之間的關係;但是對於計算機很難直接區分!但是如果用 index:1,2,3,4 來做 label 的話,就會出現比較關係,因爲每個label之間的距離是不同的。這樣計算機就可以用數字當作 fruit 的 label。例如你做一個風控模型,預測的是四個風險類別[低,中,高,緊急],其實你也可以用1,2,3,4來做label,因爲確實存在一個比較。但這本質上就成了迴歸問題。
二、one_hot可以計算top N準確率
同樣還是用上面的例子來說:針對四個 label :[apple,banana,strawberry,watermelon] 預測的結果爲:[0.1,0.6,0.2,0.1]
這樣的話一般取概率最高的那個預測結果;即:banana 如果真實的 label 也是 banana 的話,那麼這個結果就是 top 1準確率,但是如果真實 label 是 strawberry,並且 strawberry 的概率排第二,那麼這個結果就是 top 2 準確率。現在許多分類問題中都用到 top N 準確率對模型進行評估。
你購物時經常會看到物品下方有N個推薦搭配,如果推薦模型的top N準確率越高,那麼這個購物推薦的最後轉化效果就越好。