train] ### SVM ### # kernel:‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ clf = svm.SVC(C=10, gamma=0.01, kernel='rbf', probability=True) clf.fit(X_train_stats_kfold, y_train_kfold) prediction = clf.predict(X_test_stats_kfold) prob = clf.predict_proba(X_test_stats_kfold) prob = prob[:, 1] print(prob, prediction) fpr, tpr, thresholds = roc_curve(y_test_kfold, prob) print(type(fpr)) roc_auc = auc(fpr, tpr) #auc为Roc曲线下的面积 fpr = fpr.tolist() tpr = tpr.tolist() print('FPR, TPR: ', fpr, '\n', tpr) print('auc:', roc_auc) _precision, _recall, _f1_score, _acc, _TNR = getAccuracy( prediction, y_test_kfold) print('precision:', _precision, 'recall', _recall, 'f1_score', _f1_score, 'accuracy', _acc, 'TNR', _TNR) kfold_precision.append(_precision) kfold_recall.append(_recall) kfold_f1_score.append(_f1_score) kfold_acc.append(_acc) kfold_TNR.append(_TNR) fold_counter += 1 print('10 k average evaluation is:', 'precision:', np.mean(kfold_precision), 'recall', np.mean(kfold_recall), 'f1_score', np.mean(kfold_f1_score), 'accuracy', np.mean(kfold_acc), 'TNR', np.mean(kfold_TNR))
test] X_val_stats_kfold, y_val_kfold = X_train_stats[ train[-1000:]], y_train[train[-1000:]] X_train_stats_kfold, y_train_kfold = X_train_stats[ train[:-1000]], y_train[train[:-1000]] # 采用后1000条做验证集 # X_val, y_val = X_train[-1000:], y_train[-1000:] # X_train, y_train = X_train[:-1000], y_train[:-1000] ### Decision Tree ### ### xgboost ### y_test, y_pred = xgboost_model(X_train_stats_kfold, y_train_kfold, X_test_stats_kfold, y_test_kfold, max_depth, min_child_weight) print(y_test, y_pred) _precision, _recall, _f1_score, _acc, _TNR = getAccuracy( y_pred, y_test) print('precision:', _precision, 'recall', _recall, 'f1_score', _f1_score, 'accuracy', _acc, 'TNR', _TNR) kfold_precision.append(_precision) kfold_recall.append(_recall) kfold_f1_score.append(_f1_score) kfold_acc.append(_acc) kfold_TNR.append(_TNR) fold_counter += 1 time_end = time.time() _time = time_end - time_start kfold_time.append(_time) print('10 k average evaluation is:', 'precision:', np.mean(kfold_precision), 'recall', np.mean(kfold_recall),