前回のプログラム事例の発展型として、PyODライブラリ付属のデモ描画システムを利用することができる。まず以下の2つのライブラリのインポートを追加する。
from pyod.utils.data import evaluate_print from pyod.utils.example import visualize
そして異常検知手法のループの部分を以下に置き換える。
# Loop for outlier detection tools for i, (clf_name, clf) in enumerate(classifiers.items()): # train kNN detector clf.fit(X_train) # get the prediction labels and outlier scores of the training data Y_train_pred = clf.labels_ # binary labels (0: inliers, 1: outliers) Y_train_scores = clf.decision_scores_ # raw outlier scores # get the prediction on the test data Y_test_pred = clf.predict(X_test) # outlier labels (0 or 1) Y_test_scores = clf.decision_function(X_test) # outlier scores # evaluate and print the results print("\nOn Training Data:") evaluate_print(clf_name, Y_train, Y_train_scores) print("\nOn Test Data:") evaluate_print(clf_name, Y_test, Y_test_scores) # visualize the results visualize(clf_name, X_train, Y_train, X_test, Y_test, Y_train_pred, Y_test_pred, show_figure=True, save_figure=True)
そうすると以下のようなデモバージョンのグラフが描かれる。