12 OML4Pyメトリック

OML4Pyは、データベース内のモデル評価のメトリックを計算する関数を含むメトリック・モジュールを提供します。

oml.metrics.metric_functionクラスの属性およびメソッドの詳細は、help(oml.metrics.metric_function)をコールするか、Oracle Machine Learning for Python APIリファレンスを参照してください。たとえば、confusion_matrixについて確認するには、help(oml.metrics.confusion_matrix)をコールします。

次の表に、予測データ・フレームのメトリック・モジュールのoml.metricsでサポートされる関数を示します。

表のすべての関数には、次のように入力引数としてpred_df(prediction data frame)y_true(true values)およびy_pred(predicted values)が必要です:
  • pred_df(prediction data frame): 正解値または実際の値、予測値、およびオプションでサンプルの重みを含むデータ・フレーム。データ・フレームに必要な列が含まれていない場合、関数は例外をスローします。データ・フレームには任意の数の列を含めることができますが、計算に使用されるのはパラメータで指定された列のみです。列名には制限がありません。

    分類または回帰メトリックを実行する場合、ターゲット列および予測列は、oml.Bytes以外の任意のタイプにできます。また、回帰メトリックの場合、予測値とtrue値列の両方をoml.String型にしないでください。加重メトリックが計算される場合、データ・フレームとメトリックの両方に重み列が含まれている必要があります。重み列の型はoml.floatまたはoml.integerで、その合計はゼロより大きくする必要があります。

  • y_true(true values): ターゲット(実際)値を含む列の名前。
  • y_pred(predicted values): 予測値を含む列の名前。

表12-1 メトリック・モジュール

メトリック関数 説明

confusion_matrix

混同行列を計算します。

precision_score

精度を計算します。

recall_score

リコールを計算します。

f1_score

f1スコアを計算します。

accuracy_score

正確性を計算します。

balanced_accuracy_score

バランスのとれた正確性を計算します。

roc_auc_score

受信者操作特性曲線下面積(ROC AUC)を計算します。

mean_squared_error

平均2乗誤差を計算します。

mean_squared_log_error

平均2乗対数誤差を計算します。

mean_absolute_error

平均絶対誤差を計算します。

median_absolute_error

中央値絶対誤差を計算します。

r2_score

決定係数を計算します。

メトリック関数の詳細は、Oracle Machine Learning for Python APIリファレンスを参照してください。

例12-1 confusion matrix関数の使用

この例では、関数confusion_matrixを使用して、指定されたDataFarmeの混同行列を計算します。

import oml
import pandas as pd
from oml.metrics import confusion_matrix

y_true = [1, 0, 1, 0, 1, 1, 0, 1, 1, 0]
y_pred = [1, 1, 1, 0, 0, 1, 1, 0, 0, 0]
sample_weight = [1, 2, 1, 1, 1, 1, 1, 3, 1, 1]
    
pdf = pd.DataFrame({'y_true': y_true, 'y_pred': y_pred, 'sample_weight': sample_weight})
df = oml.create(pdf, 'test_class')
confusion_matrix(df, 'y_true', 'y_pred', sample_weight='sample_weight')
array([[2, 3], [5, 3]])