機械翻訳について

空間ラグ変圧器

特定のフィーチャの空間ラグは、各観察の周囲の近傍におけるそのフィーチャの平均値を反映します。

たとえば、特定の地域では、住宅価格の空間ラグは、特定の家やロケーションを囲む平均住宅価格です。 これは、機械学習モデルのトレーニングに直接使用できる空間ラグ値を計算するフィーチャ・エンジニアリング・メソッドです。

SpatialLagTransformerクラスは、トレーニング・データの空間ラグを計算し、観測値をその空間ラグに変更します。 言い換えると、観察の値は近傍の平均値に変更されます。

SpatialLagTransformerのインスタンスを作成するには、隣接するロケーション間の関係を確立するspatial_weights_definitionパラメータを定義する必要があります。

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

メソッド 説明
fit トレーニング・セットのすべての機能の空間ラグを計算します。
transform use_fit_lagパラメータに応じて空間ラグ値を変更します。 use_fit_lag=Trueの場合、トレーニング・セットから空間ラグが計算されます。 それ以外の場合は、transformメソッドに渡されるデータから空間ラグを計算します。 この関数は、NumPy配列を返します。
fit_transform トレーニング・データとともに、fitおよびtransformメソッドを順番にコールします。

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

次の例では、block_groups SpatialDataFrameおよびSpatialLagTransformerメソッドを使用して、MEAN_AGEおよびHOUSE_VALUE機能の値を変更し、それらの空間ラグ値を決定します。 MEDIAN_INCOME機能は、ターゲット変数として定義されているため無視されます。 geometry機能は空間ラグの計算に使用されますが、トランスフォーマからの出力には含まれません。

from oraclesai.weights import KNNWeightsDefinition
from oraclesai.preprocessing import SpatialLagTransformer
 
# Define the variables
X = block_groups[["MEDIAN_INCOME", "MEAN_AGE", "HOUSE_VALUE", "geometry"]]
 
# Print original data
print(f">> Original data:\n {X[['MEAN_AGE', 'HOUSE_VALUE']].get_values()[:5]}")
 
# Define spatial weights
weights_definition = KNNWeightsDefinition(k=5)
 
# Create an instance of SpatialLagTransformer
spatial_lag_transformer = SpatialLagTransformer(spatial_weights_definition=weights_definition)
 
# Print the transformed data
X_spatial_lag = spatial_lag_transformer.fit_transform(X, y="MEDIAN_INCOME", geometries="geometry")
print(f"\n>> Transformed data:\n {X_spatial_lag[:5, :]}")

結果の出力は、MEAN_AGEおよびHOUSE_VALUEの空間ラグを持つNumPy配列です。

>> Original data:
 [[4.75847626e+01 4.56300000e+05]
 [3.88231812e+01 8.36300000e+05]
 [4.78076096e+01 1.12630000e+06]
 [4.65636330e+01 9.60400000e+05]
 [5.11550865e+01 1.01090000e+06]]

>> Transformed data:
 [[4.03809292e+01 6.23460000e+05]
 [3.95882790e+01 8.20100000e+05]
 [4.69466225e+01 1.22280000e+06]
 [4.25439751e+01 1.04664000e+06]
 [4.43390564e+01 1.14368000e+06]]