空間パイプラインについて
空間パイプラインは、既存のscikit-learn
パイプラインを拡張して、ジオメトリ・データや空間重みなどの空間情報を含めます。
SpatialPipeline
クラスは、空間ステップと非空間ステップの両方を簡単に連鎖でき、エスティメータで構成されます。 エスティメータは次のいずれかです:
- トランスフォーマ: 次の表で説明する
fit
およびtransform
メソッドを持つエスティメータ。メソッド 説明 fit
fit
メソッドは、トレーニング・データから統計およびその他のプロパティを計算します。transform
transform
メソッドは、fitメソッドで計算された値を適用してデータを変更します。fit_transform
トレーニング・データを使用して、 fit
およびtransform
メソッドを順番にコールします。トランスフォーマの一般的な例の1つは、
StandardScaler
です。この例では、各フィーチャの平均および単位の差異がゼロになるようにデータを標準化します。 通常、トランスフォーマはパイプラインの前処理ステップの一部です。 - Classifier/Regressor: このエスティメータは、パイプラインの最後のステップである必要があります。 回帰または分類タスクのいずれかです。 パイプラインで使用できるメソッドは、最終ステップのメソッドに対応します。 この場合、
fit
、predict
およびscore
メソッドと、エスティメータに関連付けられた他のメソッドがあります。 通常、パイプラインは、このエスティメータに到達する前に複数のトランスフォーマを通過します。 - 複合エスティメータ: これらのエスティメータは、複数のエスティメータを組み合せることができ、他のエスティメータと連鎖させることができます。 たとえば、データに対する複数の変換を実行してから、このパイプラインを回帰タスクの別のパイプラインの一部にする前処理パイプラインがあるとします。 3つのコンポジット・エスティメータがあります:
エスティメータ 説明 SpatialPipeline
空間情報を含むパイプライン。 SpatialFeatureUnion
異なるエスティメータの結果列(機能)を連結して、空間情報を共有しながら単一の入力を作成します。 SpatialColumnTransformer
入力から列のサブセット(機能)を選択し、空間情報の共有中にこれらの列をエスティメータに渡します。
空間パイプラインは、通常のscikit-learn
パイプラインと同じ入力に加え、空間プロセス(空間トランスフォーマ、空間モデルまたは予測子)に必要な空間情報も取得できます。 この追加の空間情報は、次の2つのカテゴリに分けられます:
- データのロケーション/ジオメトリ: 入力データの各サンプルに関連付けられたジオメトリ
X
は、ジオメトリのベクトルです。X
がジオパンダGeoDataFrame
またはSpatialDataFrame
の場合、このベクトルをX
に埋め込むことができます。 パラメータ・ジオメトリでも定義できます。 - 空間パラメータ: これらは、ジオメトリ(CRS)に関するコンテキストの提供、空間関係の説明/定量化(空間重み定義、空間重みオブジェクト)またはより高速な空間検索(空間索引)の実行に使用する追加パラメータです。
次の図は、空間パイプライン内のデータ・フローを示しています。
前述の図に示すように、X
、y
および(オプションで)空間パラメータで構成される入力データは、空間パイプラインによって受信されます。 入力X
は、X'
(非空間データ)およびジオメトリに分割できます。 次に、空間パラメータとジオメトリが抽出され、パイプライン内のすべての空間ステップに渡されます。