oraclesai.clustering

class AgglomerativeClustering(n_clusters=2, metric='euclidean', linkage='ward', distance_threshold=None, n_jobs=None, spatial_weights_definition=None)

Agglomerative Clustering Algorithm。 各監視は独自のクラスタで開始され、次に、最も近い2つのクラスタがマージされて1つのクラスタを形成します。このプロセスは、停止条件が満たされるまで、または1つのクラスタが残るまで繰り返されます。 空間加重を定義することで、このアルゴリズムは、同じクラスタの要素を地理的に接続する空間制約を含むリージョン化を実行します。

パラメータ:
  • n_clusters - int、default=2。 作成するクラスタの数

  • metric - strまたはcallable、default="euclidean"。 観測間の距離を計算する際に使用するメトリック。

  • linkage - {'ward', 'complete', 'average', 'single'}, default='ward'. 使用する距離を決定します。 このアルゴリズムは、この基準を最小化するクラスタのペアをマージします。'ward'は、クラスタの差異を最小限に抑えます。'average'は、2つのクラスタの各観測の距離の平均を使用します。'complete'は、2つのクラスタのすべての観測間の最大距離を使用します。'single'は、2つのクラスタのすべての観測間の最小距離を使用します。

  • distance_threshold - float, default=None。 リンク距離しきい値。 Noneでない場合は、n_clustersをNoneにする必要があります

  • n_jobs - int, default=None。 実行するパラレル・ジョブの数

  • spatial_weights_definition - SpatialWeightsDefinition, default=None。 空間関係の指定。 ネイバーの識別に使用される基準を定義します(KNNWeightsDefinition、DistanceBandWeightsDefinitionなど)。

fit(X, y=None, geometries=None, spatial_weights=None, crs=None)

最初は、すべての観測が別のクラスタに関連付けられ、次にlinkageパラメータに従って最も近い2つのクラスタがマージされます。これは、クラスタ数がn_clustersと等しいか、最も近い2つのクラスタ間の距離が``distance_threshold``より大きいまで続きます。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。慣例によるAPIの一貫性のためにここに存在

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

self Fitted estimator。

fit_predict(X, y=None, geometries=None, spatial_weights=None, crs=None)

クラスタリング・モデルをトレーニングし、各観測に割り当てられたラベルを返します。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。慣例によるAPIの一貫性のためにここに存在

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

各観察に関連付けられたラベル。

property isoperimetric_quotient_

生成されるクラスタのIsoperimetric quotient (IPQ)。 シェイプの「コンパクトさ」を測定し、よりコンパクトなシェイプのIPQを1に近づける。

property labels_

各サンプルに関連付けられたクラスタを示す配列。

property n_clusters_

クラスタの数。

property silhouette_score_

結果のクラスタのシルエット・スコア。 各監視がクラスタ内にどの程度存在するかを測定します。 最良の値は1で、最悪の値は -1です。 0に近い値は、クラスタが重複していることを示します。

class DBScanClustering(eps=None, min_samples=2, metric='euclidean', metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None, spatial_weights_definition=None, use_spatial_weights_distances=True)

DBSCANは、大量のデータを基に、様々なシェイプやサイズのクラスタを検出できる密度ベースのクラスタリング技術です。 このアルゴリズムでは、パラメータとしてクラスタの数は必要ありません。 アルゴリズムは任意の時点で開始します。少なくともmin_samplesポイントがepsの半径内にある場合、近隣のすべてのポイントは同じクラスタの一部とみなされます。 その後、近隣のすべてのポイントについてプロセスが繰り返されます。 ポイントには次の3つのタイプがあります:

  • コア・ポイント

    半径eps内の近傍に少なくともmin_samples個のポイントがあります。

  • ボーダー点

    コア・ポイントから到達可能ですが、近所のポイント数はmin_samples未満です。

  • ノイズ・ポイント

    コア・ポイントでもボーダー点でもなく、どのコア・ポイントからも到達できないポイントです。

リージョン化は、DBSCANアルゴリズムに空間コンテキストを提供するために使用されます。 このように、同じクラスタの観測は、属性だけでなく、その空間のロケーションでも同様です。

パラメータ:
  • eps - float, default=None。 2つのサンプル間の最大距離。1つのサンプルは、もう一方のサンプルの近傍と見なされます。 Noneの場合、K-Distanceメソッドを使用してepsの最適値を推定します。

  • min_samples - int, default=None。 コア・ポイントと見なされるポイントの近傍のサンプルの数。 Noneの場合、データ内の機能の数を使用して推定されます。

  • metric - str、または呼び出し可能、default='euclidean'。 フィーチャ配列のインスタンス間の距離を計算するために使用されるメトリック。 メトリックが文字列またはコール可能な場合は、 :funcで許可されるオプションのいずれかである必要があります : sklearn.metrics.pairwise_distances メトリックが'事前計算済'の場合、Xは距離行列とみなされ、正方形である必要があります。

  • metric_params - dict, default=None。 メトリック関数の追加の引数

  • algorithm - {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’. NearestNeighborsモジュールがポイント単位の距離をコンピュートし、最も近い近傍を見つけるために使用するアルゴリズム。

  • leaf_size - int、default=30。 BallTreeまたはcKDTreeに渡されるリーフ・サイズ。 これは、構築と問合せの速度、およびツリーの格納に必要なメモリーに影響を与える可能性があります。 最適な値は問題の性質によって異なります。

  • p - float, default=None。 点間の距離の計算に使用されるMinkowskiメトリックの力。 Noneの場合は、p=2 (ユークリッド距離と同等)。

  • n_jobs - int, default=None。 実行するパラレル・ジョブの数

  • spatial_weights_definition - SpatialWeightsDefinition, default=None。 空間関係の指定。 ネイバーの識別に使用される基準を定義します(KNNWeightsDefinition、DistanceBandWeightsDefinitionなど)。

  • use_spatial_weights_distances - bool, default=True。 Trueの場合、マトリックスを距離として使用します。 Falseの場合、すべてのネイバーまでの距離をゼロに設定します。

property eps_

2つのサンプル間の最大距離。1つのサンプルがもう一方のサンプルの隣りと見なされます。

fit(X, y=None, geometries=None, spatial_weights=None, crs=None)

指定されたデータおよびパラメータを持つDBSCANモデルに適合します。空間重みが定義されている場合は、リージョン化が実行され、同じクラスタの要素が地理的に接続されます。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。ここには、慣例によるAPIの一貫性があります。

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 Xがnumpy配列の場合にのみ使用されます。 XでCRS情報が使用可能な場合(つまり、SpatialDataFrameまたはGeoDataFrame)は無視されます。

fit_predict(X, y=None, geometries=None, spatial_weights=None, crs=None)

クラスタリング・モデルをトレーニングし、各観測に割り当てられたラベルを返します。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。慣例によるAPIの一貫性のためにここに存在

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

各観察に関連付けられたラベル。

property isoperimetric_quotient_

結果のクラスタのisoperimetric quotient (IPQ)。 これは、地理的一貫性のメトリックです。 リージョンの領域と、リージョンと同じ境界を持つ円の領域を比較します。 このメトリックは、コンパクト・シェイプの値は1に近い値ですが、拡張シェイプまたはシン・シェイプの値は0に近い値になります。

property labels_

各サンプルに関連付けられたクラスタを示す配列。

property min_samples_

コア・ポイントと見なされるポイントの近傍のサンプルの数。

property silhouette_score_

結果のクラスタのシルエット・スコア。 各監視がクラスタ内にどの程度存在するかを測定します。 最良の値は1で、最悪の値は -1です。 0に近い値は、クラスタが重複していることを示します。

class KMeansClustering(n_clusters=None, init='k-means++', n_init=10, max_iter=300, tol=0.0001, verbose=0, random_state=None, copy_x=True, algorithm='lloyd', init_method='elbow', n_jobs=None)

K-Meansクラスタリング・アルゴリズム。 重心に基づいて、各観察は最も近い重心に関連付けられています。 新しい重心は、それに関連するすべての観察の平均です。 アルゴリズムは、一定の数の反復に達するまで、または重心の場所が前の反復から変わらないまで停止します。 クラスタ数が指定されていない場合、アルゴリズムはパラメータinit_methodのメソッドを使用してそれを推定します。 リージョン化はサポートされていないため、同じクラスタの要素を地理的に切断できます。

パラメータ:
  • n_clusters - int, default=None。 形成するクラスタの数と生成する重心の数

  • init - {“k-means++”, “random”}, default=”k-means++”. クラスタ初期化の方法。 配列が渡された場合、その配列はシェイプ(n_clusters、n_features)であり、初期センターを提供します。 コール可能関数が渡された場合、引数Xn_clustersおよびrandom stateをとり、初期化を返す必要があります。

  • n_init - int、default=10。 k-meansが異なる重心種で走る回数。 最終結果は、慣性に関してn_init連続実行の最適な出力になります

  • max_iter - int、default=300。 1回の実行に対するk-meansアルゴリズムの最大反復数。

  • tol - float、default=1e-4。 収束を宣言するために、2つの連続する反復のクラスタ・センターにおける差のFrobeniusノルムに基づく相対許容範囲。

  • verbose - int、default=0。 冗長性モード。

  • random_state - int、RandomStateインスタンスまたはNone、default=None。 重心初期化の乱数生成を決定します。 intを使用してランダム性を決定します。

  • copy_x - bool, default=True。 Trueの場合、元のデータは変更されません。 Falseの場合、元のデータは変更され、ファンクションが戻される前に戻されます。ただし、小さい数値の差異は、減算してからデータ平均を加算することで導入できます。 元のデータがCに連続していない場合、copy_x=Falseの場合でもコピーが作成されます。 元のデータが疎で、CSR形式ではない場合、copy_x=Falseの場合でもコピーが作成されます。

  • algorithm - {“lloyd”, “elkan”}, default=”lloyd”. 使用するK-meansアルゴリズム。 古典的なEMスタイルは「ロイド」です。 「エルカン」のバリエーションは、三角形の不等式を使用して、明確に定義されたクラスタを持つデータに対してより効率的です。 ただし、追加のシェイプ配列(n_samples、n_clusters)が割り当てられるため、メモリーが集中します。

  • init_method - {“elbow”, “silhouette”}, default=”elbow”. クラスタ数の見積りに使用されるメソッド。n_clustersが定義されていない場合にのみ使用されます。

  • n_jobs - int, default=None。 同時に実行されているジョブの最大数。 Noneは、n_jobs=1と解釈される'unset'のマーカーです。

property cluster_centers_

クラスタ・センターの座標。

fit(X, y=None, geometries=None, spatial_weights=None, crs=None)

クラスタの数が指定されていない場合は、パラメータinit_methodを使用して見積もられます。 K-Meansアルゴリズムは、重心の場所を推定するために実行されます。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。ここには、慣例によるAPIの一貫性があります。

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - 使用されず、APIの一貫性のために存在します。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 Xがnumpy配列の場合にのみ使用されます。 XでCRS情報が使用可能な場合(つまり、SpatialDataFrameまたはGeoDataFrame)は無視されます。

返り値:

self Fitted estimator。

fit_predict(X, y=None, geometries=None, spatial_weights=None, crs=None)

クラスタリング・モデルをトレーニングし、各観測に割り当てられたラベルを返します。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, vector dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されず、APIの一貫性のために存在

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - 使用されず、APIの一貫性のために存在します。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

各観察に関連付けられたラベル。

property inertia_

最も近い中心へのサンプルの平方距離の合計。

property labels_

各サンプルに最も近い重心を示す配列。

class LISAHotspotClustering(column=None, spatial_weights_definition=None, max_p_value=None, supported_quadrants=None, seed=None, n_jobs=1)

ホット・スポット・クラスタ化の実装。 高値または低値を持つフィーチャの空間クラスタ、および空間外れ値を識別します。 サンプルごとに、ローカルのMoranのI、p値、およびクラスタ・タイプを表すラベルが計算されます。 p値はMoranのIの統計的意義を表します。 4つの異なるラベルがあります。

  • 1 (高-高) 高い値で囲まれた高い値(ホット・スポットとも呼ばれます)。

  • 2 (低-高) 高い値で囲まれた低い値。

  • 3 (低-低) 低い値で囲まれた低い値(コールド・スポットとも呼ばれます)。

  • 4 (高-低) 低い値で囲まれた高い値。

パラメータ:
  • column - int, default=None。 ローカル相関のコンピュートに使用される列。 Noneの場合、Xの1つの列がモデルに収まることが予想されます。

  • spatial_weights_definition - SpatialWeightsDefinition, default=None。 空間関係の指定。 ネイバーの識別に使用される基準を定義します(KNNWeightsDefinition、DistanceBandWeightsDefinitionなど)。

  • max_p_value - float, default=None。 特定の値を下回るp値を持つリージョンのみをラベル付けするために使用されます

  • supported_quadrants - 整数のリスト。default=None。 これらの四分位数からの観測だけにラベルが付けられます。 値は、ロケーション、1 (高)、2 (低)、3 (低)、4 (高)を示します。

  • seed - int, default=None。 条件付きランダム化の再現性を確保するためにシードされます。

  • n_jobs - int, default=None。 同時に実行されているジョブの最大数。 Noneは、n_jobs=1と解釈される'unset'のマーカーです。

property Is

各サンプルのローカルMoranのI配列。

property coldspots_

コールド・スポットを表す整数の配列。 i番目の観測のラベルが3とは異なる場合、配列のi番目の要素は-1に設定されます。 ラベルが割り当てられていない場合は、Noneが返されます。

fit(X, y=None, geometries=None, spatial_weights=None, column_map=None, crs=None)

指定された列に基づいてローカル自動相関索引を計算します。 データに単一の列が含まれている場合は、その列が参照として使用されます。 ラベルとリージョンは、ローカル自動相関テストの結果を使用して計算されます。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。ここには、慣例によるAPIの一貫性があります。

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • column_map - Dictionary, default=None。 列名と列索引を示す列キーと値のペアを持つディクショナリ。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

self Fitted estimator。

fit_predict(X, y=None, geometries=None, spatial_weights=None, column_map=None, crs=None)

クラスタリング・モデルをトレーニングし、各観測に割り当てられたラベルを返します。

パラメータ:
  • X - シェイプ(n_samples、n_features)の{numpy array, geopandas dataframe, spatial dataframe}。 クラスタへのトレーニング・インスタンス。

  • y - 無視。 使用されません。慣例によるAPIの一貫性のためにここに存在

  • geometries - shapely array, default=None。 Xの各サンプルのジオメトリ・データ。

  • spatial_weights - SpatialWeights, default=None。 空間加重マトリックス。

  • column_map - Dictionary, default=None。 列名と列索引を示す列キーと値のペアを持つディクショナリ。

  • crs - pyproj.crs.CRS, default=None。 座標参照系。 データ・フレームまたは空間データ・フレームの場合、crsはデータから取得されます。それ以外の場合、パラメータとして渡すことができます。

返り値:

各観察に関連付けられたラベル。

property hotspots_

ホット・スポットを表す整数の配列。 i番目の観測のラベルが1とは異なる場合、配列のi番目の要素は-1に設定されます。 ラベルが割り当てられていない場合は、Noneが返されます。

property labels_

各サンプルの四角形のロケーションを示す整数の配列。 値は、ロケーション、1 (高)、2 (低)、3 (低)、4 (高)を示します。

property outliers_

外れ値を表す整数の配列。 i番目の観測のラベルが2または4とは異なる場合、配列のi番目の要素は-1に設定されます。 ラベルが割り当てられていない場合は、Noneが返されます。

property ps

各サンプルのp値を持つ配列。

property regions_

クアドラントをキーとして、および対応するクアドラントのサンプルによって形成されるすべての連続リージョンを値として含むディクショナリ。

property z_values

各サンプルのz値を持つ配列。