在初始化OneHotEncoder时,我传入一个硬编码的列表/元组(尝试了这两种方法),并且在fit_transform期间得到了这个错误,没有在任何地方使用numpy类型(除了数据矩阵本身)。
唯一的一点是,该数组中的一些值是None,因为我还使用categorical_features来指定掩码(就像在某些特性中是实值的,我希望它们保持实值。
我的n_values看起来像[1, 2, 3, None, 5]或者(1, 2, 3, None, 5)
我的categorical_features看起来像[0, 1, 2, 4],尽管我也尝试过:
[True, True, True, False, True]。
文档中没有任何带有掩码的实际示例。
编辑:
因此,我尝试用零替换None,这个问题消失了,但现在我得到了:
ValueError: Shape mismatch: if n_values is an array, it has to be of shape (n_features,).
无论我是否用np.array包装我的np.array数组(当我这样做时,形状确实与(n_features,)相同),我也得到了同样的错误(不过有趣的是,它不再抱怨它是一个numpy数组,只要其中没有None值。
发布于 2017-06-27 10:21:08
n_values只应包含范畴值的域大小,完全跳过数据矩阵中的非分类列。
因此,如果使用[True, False, True]格式,大小应该对应于数组中的True值的数目,或者如果使用索引,则两个数组的大小应该相同。
因此,应该没有None值,也不应该有0、-1s或任何其他方法来编码n_values数组中的实值变量。
https://stackoverflow.com/questions/44776786
复制相似问题