機械翻訳について

空間加重

空間重みは、空間AIでの分析とモデリングのための空間関係を定量化するために使用されます。

空間加重は加重グラフとして表され、データセット内の各観測はノードを表します。 2つのノードが地理的コンテキスト内の隣接ノードである場合、そのノード間に重みが関連付けられているエッジがあります。 場合によっては、重みがバイナリであり、両方のノードが空間的に接続されていることを示します。それ以外の場合、重みはノード間の距離に基づきます。 疎グラフを使用するのは一般的な方法であるため、通常、空間ウェイトは隣接リストを使用して実装されます。

空間自動相関統計やリージョン化アルゴリズムなどの多くの機械学習アルゴリズムと空間アナリティクスは、空間AIの空間重みに依存しています。 次の表に、空間AIでサポートされている空間重みを示します。

空間加重 説明
KNNWeightsDefinition 近接性に基づいており、K近傍の空間関係を定義します。
KernelBasedWeightsDefinition これは、カーネル関数を使用して空間関係を定義し、減衰関数です。つまり、近接近傍は大きい値を持ち、近接近傍は小さい値を持ちます。
  • bandwidthパラメータは、カーネル関数に使用される距離です。
  • fixedパラメータは、帯域幅がすべての観測に対して一定であるかどうかを示します。
  • functionパラメータは、使用されるカーネルです。次の値のいずれかを指定できます: {'triangular', 'uniform', 'quadratic', 'gaussian '}.
  • パラメータkは、各監視のネイバー数を表す帯域幅の見積りに必要です。
DistanceBandWeightsDefinition 2つのノード間の距離を、接続するエッジのウェイトとして使用します。 バイナリ・パラメータがTrueの場合、しきい値を下回る距離にあるすべてのネイバーの重みは1です。 それ以外の場合は、減衰パラメータalphaを使用して重みを見積もります。 デフォルトでは、ユークリッド距離メトリックが使用されます。
RookWeightsDefinition 関係は連続性に基づいており、2つのジオメトリが少なくとも1つのエッジを共有している場合、隣接しています。
QueenWeightsDefinition この定義は矛盾に基づいています。 共通の頂点を持つ2つのジオメトリは、ウェイトが1のネイバーです。

空間ウェイトのタイプは、解決する問題のシナリオによって異なります。 空間ウェイトが連続性に基づいていない場合、データは予測参照システム内に存在する必要があります。 詳細は、「Oracle Spatial AI Python APIリファレンス」oraclesai.weightsモジュールを参照してください。

次の例は、KNNWeightsDefinition関数およびSpatialWeights.create関数を使用して、block_groups SpatialDataFrameからSpatialWeightsクラスのインスタンスを作成する方法を示しています。

from oraclesai.weights import SpatialWeights, KNNWeightsDefinition

spatial_weights = SpatialWeights.create(block_groups, KNNWeightsDefinition(k=5))

print(f"neighbors' indexes: {spatial_weights.neighbors[0]}")
print(f"neighbors' weights: {spatial_weights.weights[0]}")

前述のコードは、最初の監視のネイバーのインデックスとその重みを出力します。 この場合、すべての重みはバイナリです。 ネイバーとその重みは、それぞれneighborsプロパティとweightsプロパティを使用して参照できます。

neighbors' indexes: [2806, 81, 1717, 80, 1916]
neighbors' weights: [1.0, 1.0, 1.0, 1.0, 1.0]