使用下面的代码我尝试了一个热码多维数据。在这种情况下,数据是2d。代码按1d数据的预期工作,但对于2d数据,每列是一个热编码而不是整行。例如:对于第一数据点[9,8]
而不是生成单个热编码数据点,生成两个数据点,每个数据点对应于9&分别为8。
如何对多维数据进行热编码?
2dim.csv:
x_1,x_2
9,8
2,3
4,3
120,3
4,3
1,89
2,6
3,3
代码:
from sklearn.preprocessing import LabelEncoder
from keras.utils import np_utils
import pandas as pd
inputValues = pd.read_csv('2dim.csv')
enc = inputValues.apply(LabelEncoder().fit_transform)
cat = np_utils.to_categorical(enc , 20)
inputValues :
cat :
cat
应包含9个热编码数据点,而不是18个。
这个可能的解决方案是否每隔两个相邻的内部数组合?例如,array([[1...n_1],[2...n_2],[3...n_3],[4...n_4]])
映射到array([[1...n_1,2...n_2],[3...n_3,4...n_4]])