【发布时间】:2017-11-30 07:13:36
【问题描述】:
我在初始化 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 包装我的mask 数组(当我这样做时,形状确实与(n_features,) 相同)我得到了同样的错误(尽管有趣的是它并没有抱怨它是一个@只要其中没有 None 值,就不再是 987654337@ 数组。
【问题讨论】:
-
在文档中,它指出
n_values is Number of values per feature.每个功能可以取多少值。为什么是None? -
您应该发布完整的代码以及一些示例和完整的堆栈跟踪错误。
-
@mkaran假设您的功能是[color, age, country]。然后你想要一个热门的color和country值而不是年龄。我尝试了不同的方法,例如[7, None, 180]和[7, 0, 180],但事实证明[7, 180]是正确的方法。该文档没有给出任何存在非分类变量的示例。
标签: python arrays numpy scikit-learn