空間列トランスフォーマ
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]]