将概率转换为预测标签的最简单,最快捷的方法是什么?

时间:2017-12-08 03:49:34

标签: numpy machine-learning classification vectorization logistic-regression

简而言之,我正在为以下代码寻找一个/两行代码:

deferred.defer()

2 个答案:

答案 0 :(得分:1)

您想将概率值转换为0-1标签。作业V_prediction[0, :] = A[0, :] > 0.5应该足够了;如果目标数组V_prediction是数字,则布尔值A[0, :] > 0.5(True / False)将变为数字1,0。一个例子:

V_prediction = np.zeros((3, 10))
A = np.random.uniform(size=(3, 10))
V_prediction[0, :] = A[0, :] > 0.5 

V_prediction现在(随机)

array([[ 1.,  0.,  1.,  1.,  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.]])

如果所有标签都是整数,则可以使用整数数据类型声明V_prediction。

更复杂的方法,可以扩展到更复杂的方案,是使用numpy.piecewise

V_prediction[0, :] = np.piecewise(A[0, :], [A[0, :] > 0.5, A[0, :] <= 0.5], [0, 1])

答案 1 :(得分:-2)

numpy argmax函数应该在这里派上用场。只需将您的数组作为参数传递给argmax函数,它就会根据概率为您提供标签。

更多信息,see here