0

は、私は次のコードのための1/2行のコードを探しています:確率を予測ラベルに変換する最も容易かつ迅速な方法は何ですか?要するに

for i in range(A.shape[1]): 

    # Convert probabilities A[0,i] to actual predictions p[0,i] 
    ### START CODE HERE ### (≈ 4 lines of code) 
    if(A[i] > .5) 
     Y_prediction[i] = 1 
    else 
     Y_prediction[i] = 0 
+0

期待される出力をサンプルケースに追加しますか? – Divakar

+1

Andrew NgのDL特化のコード...? – desertnaut

答えて

1

あなたは0-1ラベルに確率値を変換したいです。割り当てV_prediction[0, :] = A[0, :] > 0.5で十分です。ブール値A[0, :] > 0.5(True/False)は、ターゲット配列V_predictionが数値の場合、数字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

numpy argmax関数が便利です。配列を引数としてargmax関数に渡すだけで、確率に基づいたラベルが表示されます。

さらに、see here

関連する問題