機械翻訳について

カテゴリ・ラグ変圧器

カテゴリ・ラグはカテゴリ変数に使用され、近所で最も一般的な値を表します。

たとえば、不動産タイプ(家、パート、タウン・ハウスなど)を表すフィーチャの場合、カテゴリ・ラグは周囲で最も一般的なプロパティです。

これは、機械学習モデルのトレーニングに直接使用できるカテゴリ・ラグ値を計算するフィーチャ・エンジニアリング・メソッドでもあります。 CategoricalLagTransformerクラスは、特定のトレーニング・データのカテゴリ・ラグを計算し、そのカテゴリ・ラグの観測値を変更します。 近所で最も一般的な価値で観察の価値を変えます。

このクラスのインスタンスは、隣接する観測間の関係を定義するspatial_weights_definitionパラメータを取ります。

次の表で、クラスの主なメソッドについて説明します。

メソッド 説明
fit spatial_weights_definitionパラメータおよびジオメトリ列に関連付けられたアルゴリズムを使用して、トレーニング・データの空間重みを計算します。
transform 各ロケーションのネイバーから最も一般的な値を返します。 use_fit_lagパラメータを定義することで、メソッドはトレーニング・セットのネイバー、またはtransformメソッドに渡されるデータを使用できます。 出力はNumPy配列です。
fit_transform トレーニング・セットを使用して、fitおよびtransformメソッドを順番にコールします。

詳細は、「Oracle Spatial AI Python APIリファレンス」CategoricalLagTransformerクラスを参照してください。

次の例では、block_groups SpatialDataFrameおよびCategoricalLagTransfomerメソッドを使用して、対応するネイバーの最も一般的な値のINCOME_CLASS機能から値を変換します。

INCOME_CLASS列には4つのカテゴリがあります: High, Medium-High, Medium-Low, Low これらは、特定の観察の収入レベルを表します。 ターゲット変数(MEDIAN_INCOME)およびgeometry列は、出力の一部ではありません。

from oraclesai.weights import KNNWeightsDefinition 
from oraclesai.preprocessing import CategoricalLagTransformer 
import pandas as pd 
 
# Create a categorical variable based in the median income
labels=['Low', 'Medium-Low', 'Medium-High', 'High'] 
block_groups_extended = block_groups.add_column("INCOME_CLASS", pd.qcut(block_groups["MEDIAN_INCOME"].values, [0, 0.25, 0.5, 0.75, 1], labels=labels).tolist()) 
 
# Define the variables of the training data
X = block_groups_extended[["MEDIAN_INCOME", "INCOME_CLASS", "geometry"]] 
print(f">> Original data:\n {X['INCOME_CLASS'].values[:10]}")
 
# Define the spatial weights
weights_definition = KNNWeightsDefinition(k=20) 
 
# Create an instance of CategoricalLagTransformer
categorical_lag_transformer = CategoricalLagTransformer(weights_definition) 
 
# Transforms the training data with the categorical lag 
X_categorical_lag = categorical_lag_transformer.fit_transform(X, y='MEDIAN_INCOME', geometries='geometry') 
 
# Displays the transformed data
print(f"\n>> Transformed data:\n {X_categorical_lag[:10, :]}")

結果の出力は、単一の列を含むNumPy配列で、INCOME_CLASS列のカテゴリ・ラグを表します。 ターゲット変数( MEDIAN_INCOME)とジオメトリの両方が出力の一部ではないことに注意してください。

>> Original data:
 ['Medium-Low' 'Medium-High' 'Medium-High' 'High' 'High' 'High' 'High'
 'High' 'Medium-High' 'Medium-Low']

>> Transformed data:
 [['High']
 ['High']
 ['High']
 ['High']
 ['High']
 ['High']
 ['High']
 ['Medium-High']
 ['Medium-High']
 ['Medium-High']]