

機械学習を勉強している大学生です。  
python,tensorflow,kerasを用いて2クラス分類を行うプログラムを書いています。

分類確率を`model.predict`で出すことはできるのですが、  
その確率値がどのデータに対するものなのかを出力する方法がわかりません。  
以下は確率値を出すための部分的なプログラムです。

* * *
[code]

    result = model.predict(X_test)
    
    import csv
    with open('aaa.csv', 'w', newline='') as csv_file:
        title = ['0', '1']
        writer = csv.writer(csv_file)  
        writer.writerow(title)
        writer.writerows(result)
    
[/code]

* * *

これを改良したいと思っているのですが、方法がわからずです。  
理想としては

ファイル名 0である確率値 1である確率値  
1.png 0.9999 0.0001  
2.png 0.9999 0.0001  
.  
.  
.  
のように出力することです。

よろしくお願いします。


CC BY-SA 4.0
2018-11-09T07:34:37.687
50118
2018-11-15T07:59:12.217
2018-11-09T07:47:46.067
23994
30909
question
python 機械学習 tensorflow keras
分類確率とデータの出力方法


ご提示のコードの前半の部分がないのですが、  
2値分類問題であると仮定して、学習時もlabelの数は2で学習されたと仮定します。

resultには[[データ1のlabel1である確率,データ1のlabel2である確率],[データ2の...]...]  
という形で返ってきますので、以下の様にすればよいかと思います。

[code]

    with open('aaa.csv', 'w', newline='') as csv_file:
        title = ['0', '1']
        writer = csv.writer(csv_file)  
        for n, r in zip(X_test[ファイル名のindex], result):
            writer.writerows([n,title[0],r[0],title[1],r[1]])
    
[/code]

ラベル数が2ではなく1つで学習させたとするならば  
(0である確率を出力させるモデルとしたならば)  
resultには0の確率のみが返ってきているので1の確率は補数をとれば良いです


CC BY-SA 4.0
2018-11-15T07:59:12.217
50353
2018-11-15T07:59:12.217
19716
50118
answer