【问题标题】:Python MLPClassifier Value ErrorPython MLPClassifier 值错误
【发布时间】:2017-03-15 02:55:22
【问题描述】:

我目前正在尝试训练在 sklearn 中实现的 MLPClassifier... 当我尝试用给定的值训练它时,我得到了这个错误:

ValueError: 使用序列设置数组元素。

feature_vector的格式是

[ [one_hot_encoded brandname], [不同的应用程序缩放为均值 0 和方差 1] ]

有人知道我做错了什么吗?

谢谢!




特征向量:

[

array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),

数组([ 0.82211852, -0.22976818, -0.22976818, -0.22976818, -0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, -0.22976818, 4.45590895, -0.22976818, -0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,0.3439882,-0.22976818,-0.22976818,-0.22976818, 4.93403927,-0.22976818,-0.22976818,-0.22976818,0.63086639, 1.10899671,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,1.58712703,-0.22976818, 1.77837916,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, -0.22976818, 2.16088342, -0.22976818, 2.16088342, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, -0.22976818, -0.22976818, 9.42846428, -0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, 0.91774459,-0.22976818,-0.22976818,4.16903076,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,2.44776161, -0.22976818, -0.22976818, -0.22976818, 1.96963129, 1.96963129, 1.96963129,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,7.13343874, 5.98592598,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, 3.02151799、4.26465682、-0.22976818、-0.22976818、-0.22976818、 -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, 2.25650948, -0.22976818, -0.22976818, -0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, 1.30024884,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,4.74278714,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,0.3439882, -0.22976818,0.3439882,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, -0.22976818, 0.53524033, -0.22976818, -0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818,-0.22976818,-0.22976818,-0.22976818,-0.22976818, -0.22976818, -0.22976818, -0.22976818, -0.22976818, 3.49964831, -0.22976818, -0.22976818, -0.22976818, -0.22976818, -0.22976818])

]

g_a_group:

[0.0.0.0.0.0.0.0.0.0.1.0.]




MLP:

从 sklearn.neural_network 导入 MLPClassifier

clf = MLPClassifier(求解器='lbfgs', alpha=1e-5, hidden_​​layer_sizes=(5, 2), random_state=1)

clf.fit(feature_vectors, g_a_group)

【问题讨论】:

    标签: python machine-learning scikit-learn artificial-intelligence


    【解决方案1】:

    从 scikit-learn 的角度来看,您的数据对于 .fit 调用中的预期没有任何意义。特征向量应该是大小为N x d 的矩阵,其中N - 数据点 的数量和d 特征 的数量,您的第二个变量应该持有标签,因此它应该是长度为N 的向量(或N x k,其中k 是每点的输出/标签数)。无论您的变量中表示什么 - 它们的大小与它们应该表示的不匹配。

    【讨论】:

    • 嗯,我不太明白,为什么我的特征向量不对。这只是 16k 样本中的 1 个......我的特征向量由一个品牌名称、一个热编码和一个具有不同计数的数组组成(在这个例子中,一个应用程序被使用了多少次)。这意味着我有 2 个功能……品牌名称和应用程序。这是一个样本。第二个变量包含一个性别年龄组,也是单热编码的,因为我无法将字符串传递给 MLPClassifier。在这种情况下,它是特征向量的关联组...
    • 我不能使用数组作为特征吗?请给我一个特征向量和标签的有效示例(不是文档中的示例)吗?
    • @Tim.G.特征是某个数组的一列(列大小d)。为什么另一个不属于文档的示例。这些例子非常适合理解这个概念。
    • 我搞定了... MLPClassifier 不能处理嵌套数组,只能处理一维数组。因为文档中的示例非常简约......为什么如果只有 1 个具有 2 个值的单个特征?我无法快速弄清楚如何使用如此大的数组并用它们学习我的 MLP,文档应该提供不止一个超级简单的示例。但感谢您的宝贵时间。
    • 您只需使用“特征”的不同含义,这不是线性模型社区中这个词的经典含义(或者除了决策树和 ML 的几乎任何部分归纳逻辑)。通常在机器学习中,特征不是“被描述对象的属性”,您可以将此属性设置为任意对象,而是将其视为单个标量值,因此如果您有一种热编码实际上会产生新的特征,它并没有真正为特征创造“价值”。使用这种语言,具有 2 个功能的示例是通用的。
    猜你喜欢
    • 2016-10-03
    • 1970-01-01
    • 2016-05-23
    • 2017-01-26
    • 2016-06-15
    • 2017-09-16
    • 1970-01-01
    • 2019-05-18
    • 2019-04-26
    相关资源
    最近更新 更多