我在Python中使用Spark 2.0.1,我的数据集是DataFrame,所以我使用ML库(而不是MLLib)进行机器学习。
我有一个多层感知分类器,只有两个标签。
我的问题是,是否可能不仅获取标签,而且还可以(或仅仅)获取该标签的概率?就像不仅仅是对于每个输入返回0或1,而是像0.95对于0和0.05对于1这样的东西。 如果MLP无法实现此功能,但其他分类器可以,则我可以更改分类器。我之所以只使用MLP是因为我知道它们应该能够返回概率,但我在PySpark中找不到它。
我发现了一个类似的主题, 如何从MultilayerPerceptronClassifier获取分类概率? 但他们使用Java,他们建议的解决方案在Python中不起作用。
谢谢
我的问题是,是否可能不仅获取标签,而且还可以(或仅仅)获取该标签的概率?就像不仅仅是对于每个输入返回0或1,而是像0.95对于0和0.05对于1这样的东西。 如果MLP无法实现此功能,但其他分类器可以,则我可以更改分类器。我之所以只使用MLP是因为我知道它们应该能够返回概率,但我在PySpark中找不到它。
我发现了一个类似的主题, 如何从MultilayerPerceptronClassifier获取分类概率? 但他们使用Java,他们建议的解决方案在Python中不起作用。
谢谢
...
);这里仅显示了probabilities
二维数组的第一个元素,即在第一行中probability[0]
具有最大值(因此预测为0.0
),而在第二行中(未显示)probability[1]
具有最大值,因此预测为1.0
。同样,在RF中,两行中probability[1]
(同样未在上面显示)具有最大值,因此两个预测结果均为类别1。该示例很容易复现,只需使用lr_result.show(truncate=False)
查看完整的数组值即可。 - desertnaut0.0
的概率(Python 索引从零开始),0.2710 同样如此。 - desertnaut