タグ

クラスタリングとscipyに関するmoa108のブックマーク (2)

  • SciPyでベクトル量子化 - 人工知能に関する断創録

    ベクトル量子化(Vector Quantization: VQ)とは、ベクトルで表されたデータ集合を有限個の代表的なパターン(セントロイド)に置き換える処理のことです。代表パターン(セントロイド)のリストはコードブック(code book)と呼ばれます。また、クラスタの番号をコードと呼びます。各ベクトルデータは、距離が一番近いコードに置き換えられます。大量のデータを少ない代表パターンで置き換えることができるためデータの圧縮に使えます。ただし、コードブックから元のデータは復元できないため非可逆圧縮になります。 コードブックを学習するためのアルゴリズムの代表例がk-meansクラスタリングです。ベクトルデータをクラスタリングして、各データをそのデータが属するクラスタのセントロイドに置き換えることでベクトル量子化が実現できます。 ベクトル量子化の応用 ベクトル量子化の応用例の一つに、前に取り上げ

    SciPyでベクトル量子化 - 人工知能に関する断創録
  • pythonで非階層クラスタリング - frontier45の日記

    scipy.cluster.vqを使ったK-Meansとscikits.learn.gmmを使ったGMM(gaussian mixture model)によるクラスタリングです。GMMの理論についてはこのPDFが詳しいです。(もとは変分ベイズの記事です。) これらのライブラリをそのまま使っても結果はまだソートされていないのでクラスタの番号を要素の多い順にソートし、各クラスタ内のメンバーも中心までの距離や確率で近い順にソートするラッパーを作成しました。 GMMの場合はAICやBICを使ってクラスタの数の評価もできます*1。 こんな感じのサンプルデータを用意しました。作り方はここを参照。 K-Meansだとこんな感じで GMMだとこんなクラスタリングができます。 ちなみに現在公開中のPyNumPDBにもこれが実装されていてMDのトラジェクトリから生成た複数のPDBファイルを読み込んでこんな感じ

    pythonで非階層クラスタリング - frontier45の日記
  • 1