--- ---復元コンテンツ始まります
1. k_fold = KFold(n_split、シャッフル)インデックスカッターに構成KFold
インデックスのk_fold.split(インデックス)が切断されます。
パラメータ:、切断部分を表す10が想定されるカット部分は、9部1があるシャッフル洗浄、インデックスを切断する必要がインデックス値を表す場合、トレーニングセットの一部は、一連のテストであるn_split
インポートNPとしてnumpyの から sklearn.model_selectionのインポートKFold 指数 = np.arange(20 ) k_fold = KFold(n_splits = 10、シャッフル= 偽) train_test_set = k_fold.split(指標) のために(train_set、test_set)において:train_test_set プリント(train_set ) プリント(test_set)
2.np.logical_and(pred_issame、test_issame)#pred_issame要素とtest_issameがTrueであれば、リターンが真である、ないものを返された人はFalseです
BOOL BOOLアレイpred_issame入力アレイ、test_issame入力パラメータ説明
インポートNPとしてnumpyの pred_issame = np.array([、TRUE TRUE、FALSE、FALSE]) actual_issame = np.array([、FALSE TRUE、FALSE、FALSE]) プリント(np.logical_and(pred_issame、actual_issame))
#[FALSE真偽偽]
3. np.logical_not(pred_issame)#真の入力が電車に変換Falseに、Falseで変換します
パラメータ:pred_issame入力配列は、ブール値を表し、
インポートのNPとしてnumpyの pred_issame = np.array([真、TRUE、FALSE FALSE]) プリント(np.logical_not(pred_issame)) #[FALSE FALSE TRUE TRUE]
ステップ:インデックス構造のインデックス、train_setのが入射を生成するためKFoldの使用とtest_set
ステップ2:リスト構造の使用np.arange(0、4、0.4)閾値、リスト閾値サイクル
第三段階:
最初のステップ:使用np.less(DIST、しきい値)予測された結果を達成するために
ステップ2:
TP = np.logical_and(pred_issame、actual_issame)#陽性試料を陽性試料として決定されます
FP = np.logical_and(pre_issame、np.logical_not(actual_issame))#サンプル陰性は陽性サンプルとして決定されます
TN = np.logical_and(np.logical_not(pre_issame)、np.logical_not(actual_issame))#サンプル陰性陰性サンプルが決定されます
FN = np.logical_and(np.logical_not(pre_issame)、actual_issame)#陽性試料は陰性サンプルとして決定されます
TPR = 0の場合、TP + FN == 0他のフロート(TP)/フロート(TP + FN)#リコール
FPR = 0であればFP + TN == 0他のフロート(TN)/フロート(FP + TN)
accurは=(TP + TN)/(TP + FP + FN + TN)
ステップ4:使用threshold_max = np.argmax(accur)#最大精度指標値を取得し、最高の指標値の閾値であります
DEFのcalculate_roc(THRESH、DIST、actual_issame): pre_issame = np.less(DIST、THRESH) TP = np.sum(np.logical_and(pre_issame、actual_issame)) #n個のサンプルを陽性サンプルとして予測され 、FP = np.sum(NP .logical_and(pre_issame、np.logical_not(actual_issame))) #陰性サンプルが陽性サンプルを予測される TN = np.sum(np.logical_and(np.logical_not(pre_issame)、np.logical_not(actual_issame))) #陰性サンプルであります陰性サンプル予測 のFn = np.sum(np.logical_and(np.logical_not(pre_issame)、actual_issame)) #のN個のサンプルが陰性サンプルを予測される TPR = 0 IF TP + TN == 0 他のフロート(TP)/フロート( + TP FN) FPR= 0 であれば TP + FN == 0 他のフロート(TN)/フロート(FP + TN) accur =((TP + TN)/ dist.size) リターンTPR、FPR、accur #の インポートNPとしてnumpyの から sklearn.model_selectionのインポートKFoldの 距離 = np.array([0.1、0.2、0.3、0.25、0.33、0.20、0.18、0.24 ]) actual_issame = np.array([、TRUE TRUE、FALSE FALSE、FALSE、TRUE、真、偽]) k_fold = KFold(n_splits = 4、シャッフル= 偽) 指数 = np.arange(LEN(距離)) のため k_num、(train_set、test_set)列挙(k_fold.split(インデックス)): しきい値 = np.arange(0、1、0.04 ) 精度 = np.zeros(LEN(閾値)) のため threshold_index、閾値に列挙(しきい値): _、_、精度[ threshold_index] = calculate_roc(閾値距離[train_set]、actual_issame [train_set]) max_threshold = np.argmax(精度) プリント(しきい値[max_threshold])
---終わり---コンテンツを復元