プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

DBSCANとは何ですか?


DBSCANは、ノイズのあるアプリケーションの密度ベースの空間クラスタリングの略です。これは、密度ベースのクラスタリングアルゴリズムです。アルゴリズムは、十分に高密度の領域をクラスターに増やし、ノイズのある空間データベースで任意のアーキテクチャのクラスターを見つけます。これは、クラスターを密度接続ポイントの最大グループとして表します。

密度ベースのクラスタリングの概念には、次のようないくつかの新しい定義が含まれています-

  • 特定のオブジェクトの半径ε内の近傍は、オブジェクトのε近傍として知られています。

  • オブジェクトのε近傍に少なくとも最小数のMinPtsが含まれている場合、そのオブジェクトはコアオブジェクトと呼ばれます。

  • オブジェクトのセットDが与えられた場合、pがqのε近傍内にあり、qがコアオブジェクトである場合、オブジェクトpはオブジェクトqから直接密度到達可能であると言えます。

  • オブジェクトpは、オブジェクトのチェーンp 1 がある場合、オブジェクトのグループDのεとMinPtsに関してオブジェクトqから密度到達可能です。 、...、p n 、ここでp 1 =qおよびpn =p iを含むp +1は、p iから直接密度に到達できます。 εとMinPtsに関して、1≤i≤nの場合、p i εD。

  • オブジェクトpとqの両方がεとMinPtsに関してoから密度到達可能であるようなオブジェクトoεDが存在する場合、オブジェクトpはオブジェクトのグループD内のεとMinPtsに関するオブジェクトqに密度リンクされます。

    >

密度到達可能性は、直接密度到達可能性の推移閉包であり、この接続は非対称です。相互に密度到達可能なコアオブジェクトのみがあります。密度の接続性は対称的な関係です。

密度ベースのクラスターは、密度到達可能性に関して最大​​の密度接続オブジェクトのグループです。どのクラスターにも含まれていない各オブジェクトは、ノイズとして扱われます。

DBSCANは、データベース内のすべてのポイントのε近傍をテストすることにより、クラスターを検索します。点pのε近傍にMinPtsを超えるものが含まれている場合、コアオブジェクトとしてpを持つ新しいクラスターが作成されます。 DBSCANは、これらのコアオブジェクトから直接密度到達可能なオブジェクトを繰り返し収集します。これには、いくつかの密度到達可能なクラスターのマージを含めることができます。どのクラスターにも新しいポイントを挿入できない場合、プロセスは削除されます。

空間インデックスを使用する場合、DBSCANの計算の複雑さはO(nlogn)です。ここで、nはデータベースオブジェクトの数です。したがって、O(n 2 )。ユーザーが表すパラメーターεとMinPtsを適切に設定すると、アルゴリズムは任意の形状のクラスターを効率的に検出できます。


  1. Matplotlib軸オブジェクトとは正確には何ですか?

    Axesクラスには、ほとんどの図形要素( Axis、Tick、Line2D、Text、Polygonなど)が含まれています。 、および座標系を設定します。 ステップ 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 rcParamsを使用して軸の線幅を設定します 。 現在の図に軸を追加して、現在の軸にします。 軸の棘の色を設定します。 図を表示するには、 show()を使用します メソッド。 例 from matplotlib import pyplot as plt plt.rcParams["figure.

  2. PythonのTimeTupleとは何ですか?

    datetime.dateインスタンスのtimetuple()メソッドは、time.struct_time型のオブジェクトを返します。 struct_timeは名前付きタプルオブジェクトです(名前付きタプルオブジェクトには、インデックスまたは名前でアクセスできる属性があります)。 struct_timeオブジェクトには、日付フィールドと時刻フィールドの両方を表す属性と、夏時間がアクティブかどうかを示すフラグがあります。 timetuple()関数によって返される名前付きタプルでは、​​日付オブジェクトに従って年、月、日のフィールドが設定され、時間、分、秒に対応するフィールドはゼロに設定され