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]])