在利用机器学习或者深度学习解决分类问题时,我们需要将标签进行编码,有时也需要将离散的自变量进行分类编码,特别是做神经网络或回归预测时,对离散的自变量也进行One-hot编码扩维是一种很好办法,例如我们预测租房市场单个房源的价钱时,假设装修程度是影响其价格的因素,有豪装、精装、中装、简装四种,如果我们将其视为一个变量X1不同的值,即分别编码维1,2,3,4,那么做神经网络预测时给予这一个变量权重,就不是很合适,除非事先知道这四种对价格影响的排序,否则不能给予很好的权重,此时应该对其扩维,成为X1、X2、X3、X4,对应的豪装=[1,0,0,0]、精装=[0,1,0,0]...以此类推。如果视为一个变量,则豪装=[1]、精装=[2]...以此类推,这样的算法做分类预测或者回归预测是不合适的。此时我们需要对离散的自变量X或者标签Y进行One-hot编码。
本文采用Python在Liunx环境下,安装Anaconda3的环境下,进行编程实现,值得一提的是Anaconda3包含了numpy、pandas、sklearn等科学计算、数据分析、机器学习包,也可以在再次基础上安装tensorflow框架进行深度神经网络研究。假设有一组样本的标签y=[0,1,2,3,1,2,0,