注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
モデル評価の Python API は、評価を作成し、メトリクス、画像、プロット、テーブルを評価に記録するためのメソッドを提供します。
palantir_models.transforms.evaluationpalantir_models.transforms.evaluation デコレーターは評価を作成します。このデコレーターでトランスフォームをラップし、モデル入力上の書き込み先の評価セットを指定します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13from transforms.api import configure, transform, Input import palantir_models as pm from palantir_models.transforms import ModelInput # 評価を作成するには、このデコレーターを適用する必要があります。 # このデコレーターは、モデル入力に書き込む評価セットを指定します。 @pm.transforms.evaluation("error_analysis") @transform.using( input_data=Input("..."), model_input=ModelInput("..."), ) def compute(input_data, model_input): evaluation = model_input.create_evaluation(name="my-evaluation")
上記の例では、評価は model_input モデル上の error_analysis 評価セットに書き込まれます。評価セットがまだ存在しない場合は、トランスフォームの初回実行時に自動的に作成されます。
evaluation_set_name: str
ModelInput.create_evaluationpalantir_models.transforms.ModelInput.create_evaluation(name: Optional[str] = None) -> Evaluation
ModelInput によって読み込まれたモデルの Evaluation を作成して返します。@pm.transforms.evaluation でデコレートされたトランスフォーム内から呼び出す必要があります。create_evaluation を複数回呼び出すと、同じ評価インスタンスが返されます。Copied!1evaluation = model_input.create_evaluation(name="my-evaluation")
name: Optional[str]
palantir_models.evaluations.Evaluationモデル評価の結果を記録するためのクラスです。Evaluation は、create_evaluation を使用して ModelInput から作成され、単一のモデルバージョンがテストデータに対して示す性能を記録します。
実験とは異なり、評価はステップごとの時系列ではなく、結果の単一のスナップショットを記録するため、記録メソッドは step 引数を受け付けません。
| 関数 | 説明 |
|---|---|
log_metric(key, value) | 単一のメトリクスを評価に記録します。 |
log_metrics(metrics) | メトリクスをまとめて評価に記録します。 |
log_image(name, image, caption) | 画像を評価に記録します。 |
log_plot(name, plot_data, description) | プロットを評価に記録します。 |
log_table(name, table, description) | テーブルを評価に記録します。 |
evaluation_rid プロパティは、評価のリソース識別子(RID)を返します。
Evaluation.log_metricpalantir_models.evaluations.Evaluation.log_metric(key: str, value: Union[int, float])
key に、単一のメトリクスの value を記録します。int または float)である必要があります。Copied!1evaluation.log_metric("mae", 14250.0)
key: str
value: Union[int, float]
Evaluation.log_metricspalantir_models.evaluations.Evaluation.log_metrics(metrics: Dict[str, Union[int, float]])
log_metric のバッチ版です。int または float)である必要があります。Copied!1 2 3 4evaluation.log_metrics({ "mae": 14250.0, "r2": 0.91, })
metrics: Dict[str, Union[int, float]]
Evaluation.log_imagepalantir_models.evaluations.Evaluation.log_image(name: str, image: Union[str, bytes, "PIL.Image.Image"], caption: Optional[str] = None)
Copied!1 2 3 4 5 6evaluation.log_image("residual_distribution", pillow_image) evaluation.log_image( "error_heatmap", "path/to/image.png", caption="Geographic error heatmap", )
name: str
image: Union[str, bytes, "PIL.Image.Image"]
caption: Optional[str]
Evaluation.log_plotpalantir_models.evaluations.Evaluation.log_plot(name: str, plot_data: "plotly.graph_objects.Figure", description: Optional[str] = None)
plotly.graph_objects.Figure である必要があります。その他の種類のプロットは拒否されます。Copied!1 2 3 4 5 6 7 8import plotly.express as px fig = px.box(df, x="price_tier", y="residual", title="Residuals by price tier") evaluation.log_plot( "residuals_by_tier", fig, description="Residual distribution across all price tiers", )
name: str
plot_data: "plotly.graph_objects.Figure"
description: Optional[str]
Evaluation.log_tablepalantir_models.evaluations.Evaluation.log_table(name: str, table: Union["polars.DataFrame", "pandas.DataFrame"], description: Optional[str] = None)
Copied!1 2 3 4 5 6 7 8 9import pandas as pd error_by_tier = pd.DataFrame({ "price_tier": ["affordable", "mid_range", "luxury"], "mae": [8200.0, 15400.0, 42300.0], "r2": [0.94, 0.91, 0.87], }) evaluation.log_table("error_by_price_tier", error_by_tier)
name: str
table: Union["polars.DataFrame", "pandas.DataFrame"]
description: Optional[str]