空間機能組合
SpatialFeatureUnionエスティメータは、空間プロパティを複数のトランスフォーマと共有し、結果を連結します。
               
次の表に、SpatialFeatureUnionクラスの主なメソッドを示します。
               
| メソッド | 説明 | 
|---|---|
| fit | すべてのトランスフォーマの fitメソッドをコールします。 | 
| transform | 各トランスフォーマの transformメソッドをコールし、結果を連結します。 | 
| fit_transform | すべてのトランスフォーマに適合し、データを変換して結果を連結します。 | 
詳細は、「Oracle Spatial AI Python APIリファレンス」のSpatialFeatureUnionクラスを参照してください。
次の例では、block_groups SpatialDataFrameおよびSpatialFeatureUnionを使用して、2つのトランスフォーマからの出力を連結します。 1つ目はscikit-learnのSimpleImputerで、2つ目はSpatialLagTransformerです。 データセットにはジオメトリを除く3つの列があるため、最終結果には6つの列が含まれます。 
               
from oraclesai.pipeline import SpatialFeatureUnion
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 SpatialFeatureUnion to concatenate the output from all the transformers
slag_feature_union = SpatialFeatureUnion([("imputer", SimpleImputer()),
                                          ("spatial_lag", spatial_lag_transformer)])
 
# Print the final result
print("\n=================== X transformed ============================")
print(slag_feature_union.fit_transform(X)[:5, :])変換されたデータの最初の3つの列はSpatialImputerからの出力を表し、他の3つはSpatialLagTransformerからの出力を表します。
               
=========================== 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 4.03809292e+01
  6.23460000e+05 7.92068000e+04]
 [3.88231812e+01 8.36300000e+05 6.07240000e+04 3.95882790e+01
  8.20100000e+05 9.82008000e+04]
 [4.78076096e+01 1.12630000e+06 8.25380000e+04 4.69466225e+01
  1.22280000e+06 1.14899600e+05]
 [4.65636330e+01 9.60400000e+05 1.43661000e+05 4.25439751e+01
  1.04664000e+06 1.16867800e+05]
 [5.11550865e+01 1.01090000e+06 1.23977000e+05 4.43390564e+01
  1.14368000e+06 1.45833400e+05]]