• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ

【機械学習入門】クラスタリング

    Home 技術解説 【機械学習入門】クラスタリング
    機械学習 入門 クラスタリング

    【機械学習入門】クラスタリング

    By James Cauchi | 技術解説, 技術ブログ&インタビュー | Comments are Closed | 26 10月, 2017 | 1

    機械学習アルゴリスムの1つであるクラスタリングという手法について紹介します。
    このクラスタリングは、既存のデータを元に予測や認識などのタスクを行うというよりも、データの構造を理解する際により多く用いられます。

    クラスタリングの概要

    https://avinton.com/wp-content/uploads/2017/10/embedding-mnist.mp4

     

    動画:TensorBoard: Embedding Visualization

    クラスタリングとは、類似度をもとにデータをグループ分けをする手法です。教師なし学習のひとつです。似た特徴をもとにデータグループを作り、それらをクラスタに分けていくのがこのアルゴリズムの目標です。

    【機械学習入門】教師あり学習と教師なし学習

    下図はデータが2次元と低次元のため、人の目で見ても2グループに分類されることが明らかですが、上の動画のように、高次元・多グループになると、人が判断することは困難です。
    クラスタリングは、こうしたデータのグループ分けを、人力ではなくコンピュータによる処理で実現できます。

    クラスタリングのタイプ

    大まかに言うと、クラスタリングは2つのサブグループに分けることができます。

    タイプ 内容
    ハードクラスタリング ハードクラスタリングでは、それぞれのデータ点は1つのクラスタに完全に属しているか否かの二択です。例えば上の小売店の例では、それぞれの顧客は10グループのうちのどれかに必ず割り当てられます。
    ソフトクラスタリング ソフトクラスタリングでは、それぞれのデータ点が別々のクラスタに1か0かで完全に割り当てられるのではなく、そのデータ点がそのクラスタたちに属する確率ないしは尤度が計算されます。例えば先ほどの例では、個々の客がそれぞれのクラスタに属する確率が計算されます。

    クラスタリングアルゴリズムのタイプ

    クラスタリングというタスクは自由度が大きいので、このタスクを達成するために用いられうる手段は山ほどあります。そしてその方法1つ1つがそれぞれ異なるルールに従ってデータ点間の”類似度”を定義しています。

    実際、100以上のクラスタリングアルゴリズムが世の中には存在します。ただよく使われているのはその中のほんの一部です。それらよく使われるものを少し詳しく見ていきましょう。

    タイプ 内容 主な例
    Connectivity models 名前から予想できるように、これらのモデルはデータ空間中でより近いデータ点同士は、互いにより類似しているだろうとの考えに基づいています。このモデルには2つのアプローチがあります。

    1つ目のアプローチでは、まず全てのデータ点を別々のクラスタに分類します。その上でそれらのデータ点の距離が短くなるようにデータ点をまとめていきます。

    2つめのアプローチでは、全てのデータ点は1つのクラスタとして分類され、その中で距離が長くなるように分割されていきます。また距離関数の選択にも自由があります。

    これらのモデルは、解釈はしやすいですが大きなデータセットの扱いに対しては拡張性に欠けます。

    階層的クラスタリング
    Centroid models これらは反復クラスタリングアルゴリズムで、類似度はクラスタの重心とデータ点との距離から導かれます。

    これらのモデルでは、最終的なクラスタ数を事前に指定しておく必要があり、データセットに対する事前知識を持っておく必要があります。そして反復処理によって局所最適解を見つけます。

    K Means
    Distribution models このモデルは、1つのクラスタに属する全てのデータ点が、同じ確率分布(例えば正規分布やガウス分布)に従う見込みがどれほどあるかに基づいています。オーバーフィッティングに陥りやすいのが特徴です。 多変数正規分布を用いるEMアルゴリズム(期待値最大化法)
    Density models これらは、データ空間中でデータ点の密度の異なるエリアを探します。密度の異なるエリアを分離し、そのエリア内のデータ点を同じクラスタに割り当てます。 DBSCAN、OPTICS

    K Means クラスタリング

    クラスタリング

    クラスタリングアルゴリズムの5つのステップ

    K Means クラスタリングは、非階層型クラスタリングの手法で、1回の処理ごとに極大値を見つける反復クラスタリングアルゴリズムです。階層型クラスタリングとの大きな違いは、いくつのクラスタに分割するか、あらかじめ決める必要があるという点です。このアルゴリズムは以下の5ステップからなります。

    1. クラスタの数を指定する: ここでは22次元空間で以下の5つのデータ点を2つのクラスタに分けることを考えます。
    2. ランダムにそれぞれのデータ点をクラスタに割り当てる: この例では青色のデータ点をクラスタ1に、赤色のデータ点をクラスタ2に割り当てます。
    3. クラスタの重心を計算する: 例で、青色のクラスタのデータ点の重心は青色の★印で、赤色のクラスタのデータ点の重心は赤色の★印で表しています。
    4. それぞれのデータ点を一番近いクラスタ重心に割り当てしなおす: ここでは図で一番下のデータ点のみが、赤色のクラスタ重心により近いにもかかわらず青色のクラスタに割り当てられているのでこれを赤色のクラスタに割り当てなおします。
    5. 再度クラスタの重心を計算しなおす: ここでもう一度両クラスタの重心を計算しなおします。
    6. 更新がなくなるまでステップ4、5を繰り返す: 同様にして4番目のステップと5番目のステップを大域的最適解に達するまで繰り返します。2回繰り返してもデータ点のクラスタが切り替わらなければアルゴリズムの終了を意味します。もしそうでなければ明示的に指示されます。

    なお、K meansクラスタリングは教師なし学習の一種ですが、教師信号・ラベルを自ら生成しながら学習を行うという意味で、教師あり学習の特別な場合だという解釈もあります。

    階層型クラスタリング

    階層型クラスタリングは、名前からもわかる通りクラスタの階層を組み上げていくアルゴリズムです。階層型クラスタリングには、ボトムアップ型とトップダウン型がありますが、今回はボトムアップ型をご説明します。

    このアルゴリズムでは、まず全てのデータ点にそれぞれ1つずつクラスタを割り当てます。そして2つの最近接データ点を同じクラスタにマージします。最終的には、クラスタ数が1つになるまでマージしていきます。

    データ同士の距離を比較し、近いデータ同士を結合させてボトムアップでまとめていくため、距離をどのように定義するかが重要です。
    階層的クラスタリングの結果は、樹形図を用いて表すことができます。

    clustering-hierarchy

    画像:An Introduction to Clustering and different methods of clustering

    階層型クラスタリングの結果は、上のような樹形図(デンドログラム)を用いて表すことができます。

    図の最下部、まずはそれぞれが別々のクラスタとして設定された25個のデータ点から始めます。そして最上部で1つのクラスタにまとめられるまで、最近接の2つのデータ点をマージしていきます。樹形図上で2つのクラスタがマージされる高さは、データ空間でのその2つの距離の大きさを表しています。

    樹形図を詳しく見ることで、どのクラスタ数がそのデータ点群のグループ分けを最もよく表現するかを決めることができます。最良のクラスタ数は、垂直方向の距離が最大になるように水平方向に2本の直線をクラスタとぶつかることなく引いた時の、その間の垂直方向の線の数によって決まります。

    上の例では、最良のクラスタ数は4ということになります。なぜなら下の樹形図中の赤の水平方向の2線が、垂直方向の最大距離ABをカバーしているからです。

    クラスタリング階層

    画像:An Introduction to Clustering and different methods of clustering

    クラスタリングの応用

    クラスタリングは幅広い範囲に数多くの応用先があります。最もよく見る応用先のいくつかの例として以下があげられます。

    • レコメンドエンジン
    • マーケットセグメンテーション
    • ソーシャルネットワーク分析
    • 検索結果のグループ分け
    • 医療画像処理
    • イメージセグメンテーション
    • 異常検知

     

    まとめ

    ここまででクラスタリングアルゴリズムの概要と、代表的なアルゴリズムの詳細を説明してきました。なおクラスタリングはライブラリを使えば実装は簡単ですが、データ量やデータ中の外れ値などに結果がかなり依存してしまう点には注意が必要です。

    今後も機械学習入門者の方々のために、技術ブログを定期的に公開し、機械学習の基本を網羅できるよう解説していきます。ぜひブログチェックしてください!

    関連記事

    【機械学習入門】教師あり学習と教師なし学習
    【機械学習入門】 深層強化学習の基礎
    未経験エンジニアのためのプログラミング学習コンテンツ Avintonアカデミー
    機械学習を用いた画像分類体験
    機械学習入門者向け ChainerRLでブロック崩しの学習
    機械学習入門者向け ランダムフォレストによるTitanic生存者予測
    Avintonが提供する6つの機械学習サービス事例

    Avintonは仲間を募集しています


    Avintonでは機械学習、データサイエンス技術を使ったプロジェクトや研究開発を行っています。2週間に1度、採用イベントを開催しております。社長自らがAvintonの魅力を語り、社員たちと気軽に交流できる懇談会もあります。まずはぜひあなたのキャリアプラン、やりたいことをお聞かせください!!ご連絡お待ちしております。

    お問い合わせ
    ビックデータ, 機械学習, 技術, クラスタリング

    Related Post

    • G検定合格体験記

      G検定合格体験記

      By Avinton rk | Comments are Closed

      Read more

    • Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      By Avinton rk | Comments are Closed

      Read more

    • deploying-postgresql-operator-in-Kubernetes

      PostgreSQL Operator on Kubernetes

      By Avinton rk | Comments are Closed

      Read more

    • AIモデルの最適化

      AIモデルの最適化

      By Avinton rk | Comments are Closed

      Read more

    • Pytorch Datasets & DataLoaders

      PyTorch – Datasets & DataLoaders

      By Avinton rk | Comments are Closed

      Read more

    採用情報

    採用情報

    Categories

    • 相互学習
    • 採用
    • 社員インタビュー
    • 学習&資格取得
    • 技術解説
    • イベント告知
    • 学内説明会&講義
    • 産学連携
    • 就職活動
    • イベントレポート
    • その他
    • 技術ブログ&インタビュー
    • mainpage
    • New Graduates Interviews
    • 中途エンジニア
    • カテゴリーなし
    • ニュースリリース&イベント

    Avinton SDGs

    SDGsへの貢献

    Search

    タグ

    AI時代の経営 albumentations Apache AvintonAcademy on Campus DQN FINOLAB Fintech Flutter IoT IoT James Cauchi LPIC-2 MVI試験 PostgreSQL Predictive Maintenance Raspberry Pi Society 5.0 SSD インターン インターンシップ エリクソン クラウトネイティブ サーバークラスター スマート農業 セミナー ディープラーニング データ データ生成 データ解析 ファンダフルリレーマラソン モブワーク リスキリング 中瀬幸子 企業説明会 大学&専門学校 強化学習、機械学習 技術ブログ 機械学習 環境構築 田中 研之輔 研究開発 社員紹介 第一級陸上特殊無線技士 観光データ 講義
    © 2023 Avinton | All Rights Reserved | プライバシーポリシー
    • サービス
      • Avinton Data Platform
      • エッジAIカメラ
        • 自動車ナンバープレート自動認識システム
      • プライベートクラウド
      • AIサービス開発
      • AIカメラ/画像解析無料体験版
    • 最新情報
      • ニュースリリース&イベント情報
      • 技術ブログ&インタビュー
    • アカデミー
      • Avintonアカデミー
      • Academy on Campus
      • Academy with Platform
    • 採用情報
      • Avintonジャパン 採用ページ
      • 求人一覧
      • よくある質問
      • 新卒採用
    • 企業情報
      • 会社概要
      • 代表からご挨拶
      • SDGsへの貢献
    • お問い合わせ
    • 日本語
      • English (英語)
    Avinton Japan