数据预处理值onehotencoding

-----------------原文  https://blog.csdn.net/m0_38052384/article/details/102738001 

在很多机器学习任务中,特征并不总是连续值,有可能是分类值。

 

  1. ["male", "female"]
  2.  
     
  3.  
    ["from Europe", "from US", "from Asia"]
  4.  
     
  5.  
    ["uses Firefox", "uses Chrome", "uses Safari", "uses Internet Explorer"]

    如果将上述特征用数字表示,效率会高很多,例如:

  1.  
    ["male", "from US", "uses Internet Explorer"] 表示为[0, 1, 3]
  2.  
    ["female", "from Asia", "uses Chrome"]表示为[1, 2, 1]

但是转化为数字表示后,上述数据不能直接在我们的分类器中使用。因为,分类器往往默认数据是连续的,并且是有序的。

onehotencoding,其方法是使用N位状态寄存器对N个状态进行编码,每个状态都有他独立的寄存器位,并且在 任意的时候,其中只有一位有效。

对于每一个特征,如果它有m个可能值,那么经过onehotencoding后,就变成了m个二元特征。并且这些特征互斥,每次只有一个激活。因此,数据就会变成稀疏的。

 

posted @ 2020-03-31 20:10  大大的海棠湾  阅读(89)  评论(0)    收藏  举报