我在初始化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,).
我是否用mask
包裹我的np.array
数组(当我的形状确实与(n_features,)
相同时)我得到同样的错误(尽管有趣的是它没有只要其中没有numpy
值,就会抱怨它是None
数组。
答案 0 :(得分:0)
n_values
应该只包含分类值的域大小,完全跳过数据矩阵中的非分类列。
因此,如果使用[True, False, True]
格式,则大小应与数组中True
值的数量相对应,或者如果使用索引,则两个数组的大小应相同。
所以应该没有None
值,但也没有0,-1或任何其他方法来编码n_values
数组中的实值变量。