背景
接觸tensorflow時,學習到mnist,發現處理數據的時候采取one-hot編碼,想起以前搞FPGA狀態機遇到過格雷碼與獨熱碼。
解析:
將離散型特征使用one-hot編碼,確實會讓特征之間的距離計算更加合理。
比如,有一個離散型特征,代表工作類型,該離散型特征,共有三個取值。
不使用one-hot編碼,其表示分別是x_1 = (1), x_2 = (2), x_3 = (3)。兩個工作之間的距離是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_3) = 2。
那么x_1和x_3工作之間就越不相似嗎?顯然這樣的表示,計算出來的特征的距離是不合理。
如果使用one-hot編碼,則得到x_1 = (1, 0, 0), x_2 = (0, 1, 0), x_3 = (0, 0, 1),那么兩個工作之間的距離就都是sqrt(2):即每兩個工作之間的距離是一樣的,顯得更合理。