sklearn :: TypeError:参数`n_values`的类型错误。期望的&#39; auto&#39;,int或int的数组,得到<type'numpy.ndarray'=“”>

时间:2017-06-27 09:30:32

标签: python arrays numpy scikit-learn

我在初始化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数组。

1 个答案:

答案 0 :(得分:0)

n_values应该只包含分类值的域大小,完全跳过数据矩阵中的非分类列。

因此,如果使用[True, False, True]格式,则大小应与数组​​中True值的数量相对应,或者如果使用索引,则两个数组的大小应相同。

所以应该没有None值,但也没有0,-1或任何其他方法来编码n_values数组中的实值变量。