3D MRIボリューム(脳)の領域を分割するアルゴリズムの精度を評価しようとしています。私はダイス、Jaccard、FPR、TNR、Precisionなどを使っていますが、私はこのピクセル単位でしか行っていません(I.E.FNs = false negピクセル数)。病変レベルでこれを行うためのPythonパッケージ(または疑似コード)がありますか?たとえば、私のアルゴリズムで検出された病変の数(grd trthの3d切断オブジェクト)としてTPを計算しますか?この方法では、病変の大きさは精度メトリクスに大きな影響を与えません。MRIデータで切断されたオブジェクトの評価基準
-1
A
答えて
1
0
これは私がこの作業を行うために書いたコードです。誰かがエラーを見た場合は、私に知らせてください。
def distance(p1, p2,dim):
if dim==2: return math.sqrt((p2[0] - p1[0])**2 + (p2[1] - p1[1])**2)
elif dim==3: return math.sqrt((p2[0] - p1[0])**2 + (p2[1] - p1[1])**2+ (p2[2] - p1[2])**2)
else: print 'error'
def closest(true_cntrd,pred_pts,dim):
dist_list=[]
for pred_pt in pred_pts:
dist_list.append(distance(true_cntrd, pred_pt,dim))
min_idx = np.argmin(dist_list)
return pred_pts[min_idx],min_idx
def eval_disconnected(y_true,y_pred,dim):
y_pred=y_pred>0.5
label_pred, numobj_pred = label(y_pred)
label_true, numobj_true = label(y_true)
true_labels,pred_labels=np.arange(numobj_true+1)[1:],np.arange(numobj_pred+1)[1:]
true_centroids=center_of_mass(y_true,label_true,true_labels)
pred_centroids=center_of_mass(y_pred,label_pred,pred_labels)
if len(pred_labels)==0:
TP,FN,FP=0,len(true_centroids),0
return TP,FN,FP
true_lbl_hit_list=[]
pred_lbl_hit_list=[]
for (cntr_true,lbl_t) in zip(true_centroids,np.arange(numobj_true+1)[1:]):
closest_pred_cntr,idx = closest(cntr_true,pred_centroids,dim)
closest_pred_cntr=tuple(int(coor) for coor in closest_pred_cntr)
if label_true[closest_pred_cntr]==lbl_t:
true_lbl_hit_list.append(lbl_t)
pred_lbl_hit_list.append(pred_labels[idx] )
pred_lbl_miss_list = [pred_lbl for pred_lbl in pred_labels if not(pred_lbl in pred_lbl_hit_list)]
true_lbl_miss_list = [true_lbl for true_lbl in true_labels if not(true_lbl in true_lbl_hit_list)]
TP=len(true_lbl_hit_list) # all the grd truth labels that were predicted
FN=len(true_lbl_miss_list) # all the grd trth labels that were missed
FP=len(pred_lbl_miss_list) # all of the predicted labels that didn't hit
return TP,FN,FP
関連する問題
- 1. sqlalchemy評価基準タプルのリストに基づいた評価基準?
- 2. ユニットテスト用の評価基準
- 3. 機械学習の評価基準
- 4. mutate_each_非標準の評価
- 5. 条件の基準が満たされていないと「真」と評価されるIF文
- 6. Django - 複数の基準に対する評価:モデルFormset?
- 7. ディレクティブで渡されたオブジェクトを評価する
- 8. 評価基準に基づく推奨システムとは何ですか
- 9. 標準評価do_()内のselect_()のバージョン
- 10. by data.tableの非標準的な評価
- 11. ドットパラメータの非標準的な評価
- 12. dplyr v.0.6.0標準評価の変異
- 13. 非標準の評価とPackedArray
- 14. どのマルチ評価基準ソートアルゴリズムを使用するのですか?
- 15. 切断されたハイパーリンクに
- 16. Gitkraken切断されたブランチ
- 17. 切断されたシナリオでのNHibernate
- 18. jQuery:評価の初期データ
- 19. テキストファイルからのデータ評価
- 20. 非標準的な評価lapplyとggplot
- 21. Javascriptで評価されないシンプルなJSONオブジェクト
- 22. dplyrでudfを使用した標準評価を使用
- 23. 評価値はいつ評価されますか?
- 24. Facebookのデータインポートによって「今すぐ評価された値が今すぐ評価されました」
- 25. 基準のベンチマーク前に関数入力の評価を強制する
- 26. ユーザーのクリックに基づく評価
- 27. 切断されたネットワークドライブの再接続
- 28. SignalR - 切断されたユーザーの処理
- 29. 切断されたDAGのトポロジカルソート順序
- 30. pandasデータ型で文字列化された数式を評価する