空間列トランスフォーマ
SpatialColumnTransformerは、複数のトランスフォーマと空間情報を共有し、異なる列に変換を適用して結果を連結します。
               
次の表に、SpatialColumnTransformerクラスの主なメソッドを示します。
               
| メソッド | 説明 | 
|---|---|
| fit | すべてのトランスフォーマの fitメソッドをコールします。 | 
| transform | 各トランスフォーマの transformメソッドをコールし、結果を連結します。 | 
| fit_transform | すべてのトランスフォーマに適合し、データを変換して結果を連結します。 | 
詳細は、「Oracle Spatial AI Python APIリファレンス」のSpatialColumnTransformerクラスを参照してください。
次の例では、block_groups SpatialDataFrameおよびSpatialColumnTransformerを使用して、2つの異なるトランスフォーマからの出力を連結します。 1つ目はscikit-learnのSimpleImputerで、2つ目はHOUSE_VALUE列およびMEDIAN_INCOME列に適用されるSpatialLagTransformerです。 最終結果には5つの列が含まれます。 
               
from oraclesai.pipeline import SpatialColumnTransformer
from oraclesai.weights import KNNWeightsDefinition
from oraclesai.preprocessing import SpatialLagTransformer
from sklearn.impute import SimpleImputer
 
# Define training variables
X = block_groups[["MEAN_AGE", "HOUSE_VALUE", "MEDIAN_INCOME", "geometry"]]
 
# Print X
print("=========================== X =================================")
print(X.get_values()[:5,:])
 
# Define spatial weights
weights_definition = KNNWeightsDefinition(k=5)
 
# Define a Spatial Lag Transformer
spatial_lag_transformer = SpatialLagTransformer(spatial_weights_definition=weights_definition)
 
# Use SpatialColumnTransformer to concatenate column subsets
slag_column_transformer = SpatialColumnTransformer([
    ("imputer", SimpleImputer(), ["MEAN_AGE", "HOUSE_VALUE", "MEDIAN_INCOME"]),
    ("spatial_lag", spatial_lag_transformer, ["HOUSE_VALUE",  "MEDIAN_INCOME"])])
 
# Print the final result
print("\n=================== X transformed ============================")
print(slag_column_transformer.fit_transform(X)[:5, :])変換されたデータの最初の3つの列は最初のトランスフォーマの出力を表し、他の2つの列は2番目のトランスフォーマの出力を表します。
=========================== X =================================
[[4.75847626e+01 4.56300000e+05 5.38280000e+04]
 [3.88231812e+01 8.36300000e+05 6.07240000e+04]
 [4.78076096e+01 1.12630000e+06 8.25380000e+04]
 [4.65636330e+01 9.60400000e+05 1.43661000e+05]
 [5.11550865e+01 1.01090000e+06 1.23977000e+05]]
=================== X transformed ============================
[[4.75847626e+01 4.56300000e+05 5.38280000e+04 6.23460000e+05
  7.92068000e+04]
 [3.88231812e+01 8.36300000e+05 6.07240000e+04 8.20100000e+05
  9.82008000e+04]
 [4.78076096e+01 1.12630000e+06 8.25380000e+04 1.22280000e+06
  1.14899600e+05]
 [4.65636330e+01 9.60400000e+05 1.43661000e+05 1.04664000e+06
  1.16867800e+05]
 [5.11550865e+01 1.01090000e+06 1.23977000e+05 1.14368000e+06
  1.45833400e+05]]