1
使用下面的代码我正在尝试一个热点代码多维数据。在这种情况下,数据是2d。该代码按照预期的方式工作1d数据,但对于2d数据,每列是一个热编码而不是整行。例如:对于第一数据点[9,8]
而不是生成单个热编码数据点,分别生成两个数据点,每个数据点分别对应于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]])
检查[此](https://stackoverflow.com/q/23497512/8201433)柱。它解释了如何通过两个功能获得一个热门编码 – Sriram
@Sriram感谢您的链接。一个热门编码对于多维数据是一种常见的操作,我认为有一个基于熊猫和/或scikit-learn的简单函数调用。您引用的链接中包含的解决方案不是过于复杂,而是比我预期的复杂。 Keras使原型成为一个深度学习模型变得简单,奇怪的是,一个热门编码不存在相同的原理,或者我不理解某些东西? –