ガウス混合モデルを用いた多峰性分布の分離

ガウス混合モデルを用いた多峰性分布の分離

この記事では、ガウス混合モデルを使用して 1 次元の多峰性分布を複数の分布に分割する方法を説明します。

ガウス混合モデル (GMM) は、複雑なデータ分布をモデル化および分析するために統計や機械学習で一般的に使用される確率モデルです。 GMM は、観測データが複数のガウス分布で構成され、各ガウス分布はコンポーネントと呼ばれ、これらのコンポーネントは重みによって制御され、データへの寄与を制御すると仮定する生成モデルです。

マルチモーダル分布によるデータ生成

これは、データ セットが複数の異なるピークまたはモードを示し、各モードが分布内のデータ ポイントの顕著なクラスターまたは集中を表す場合によく発生します。これらのモードは、データ値が発生する可能性がより高い高密度の領域として見ることができます。

numpy によって生成された 1 次元配列を使用します。

 import numpy as np dist_1 = np.random.normal(10, 3, 1000) dist_2 = np.random.normal(30, 5, 4000) dist_3 = np.random.normal(45, 6, 500) multimodal_dist = np.concatenate((dist_1, dist_2, dist_3), axis=0)

データの分布を 1 次元で視覚化してみましょう。

 import matplotlib.pyplot as plt import seaborn as sns sns.set_style('whitegrid') plt.hist(multimodal_dist, bins=50, alpha=0.5) plt.show()

ガウス混合モデルを用いた多峰性分布の分離

以下では、ガウス混合モデルを使用して各分布の平均と標準偏差を計算し、多峰性分布を元の 3 つの分布に分離します。ガウス混合モデルは、データのクラスタリングに使用できる確率的な教師なしモデルです。期待最大化アルゴリズムを使用して密度領域を推定します。

 from sklearn.mixture import GaussianMixture gmm = GaussianMixture(n_compnotallow=3) gmm.fit(multimodal_dist.reshape(-1, 1)) means = gmm.means_ # Conver covariance into Standard Deviation standard_deviations = gmm.covariances_**0.5 # Useful when plotting the distributions later weights = gmm.weights_ print(f"Means: {means}, Standard Deviations: {standard_deviations}") #Means: [29.4, 10.0, 38.9], Standard Deviations: [4.6, 3.1, 7.9]

平均と標準偏差がわかったので、元の分布をモデル化できます。平均値と標準偏差は正確には正確ではないかもしれませんが、近い推定値を提供していることがわかります。

私たちの推定値を元のデータと比較してください。

 from scipy.stats import norm fig, axes = plt.subplots(nrows=3, ncols=1, sharex='col', figsize=(6.4, 7)) for bins, dist in zip([14, 34, 26], [dist_1, dist_2, dist_3]): axes[0].hist(dist, bins=bins, alpha=0.5) axes[1].hist(multimodal_dist, bins=50, alpha=0.5) x = np.linspace(min(multimodal_dist), max(multimodal_dist), 100) for mean, covariance, weight in zip(means, standard_deviations, weights): pdf = weight*norm.pdf(x, mean, std) plt.plot(x.reshape(-1, 1), pdf.reshape(-1, 1), alpha=0.5) plt.show()

要約する

ガウス混合モデルは、複雑なデータ分布をモデル化および分析するために使用できる強力なツールであり、多くの機械学習アルゴリズムの基盤の 1 つでもあります。その適用範囲は複数の分野をカバーし、さまざまなデータ モデリングおよび分析の問題を解決できます。

このアプローチは、入力変数内のサブ分布の信頼区間を推定するための特徴エンジニアリング手法として使用できます。

<<:  不均衡なデータを処理する Python ライブラリ トップ 10

>>:  Google の「AI が 6 時間でチップを設計」という論文が Nature に掲載されてから 2 年経って、反論されたのでしょうか?ジェフ・ディーンの論文はソースコードを隠蔽した疑いで公式調査中

ブログ    

推薦する

LLaMA-v2-Chat と Alpaca: 異なる AI モデルはいつ使用すべきですか?

翻訳者 |李睿レビュー | Chonglou今日、大規模言語モデル (LLM) は、言語生成から画像...

人工知能の導入により AR/VR はどこへ向かうのでしょうか?

[51CTO.com からのオリジナル記事] 2015 年 1 月、Microsoft は長年「革...

ChatGPTを使用して、書類手続き全体を迅速に完了します

1. 論文のテーマに関する詳細な議論質の高いトピック選択は、トップクラスのジャーナルに論文を掲載する...

業界の視点: 人工知能がビジネスプロセスに革命をもたらす方法

今日、人工知能技術は、ウェアラブルデバイス、自動車、生産性アプリケーション、軍事、ヘルスケア、ホーム...

人工知能は「人工知能」にどれだけ「知性」を押し付けているのか

真に AI を活用したサービスを構築するのは簡単ではありません。そこで、一部のスタートアップ企業は、...

百人一首の戦いはかつてないレベルに到達!

執筆者 | 王 瑞平校正 | Yun Zhao最近また「100均戦争」が始まってます…一輪の花が春を...

ロボットが家事の仕事を代行:人間のデモンストレーション動画を見るだけで、10時間でコーヒーの淹れ方を学ぶ

先週、スタンフォード大学のエビ揚げロボットが爆発事故を起こした後、コーヒーを作るロボットが再び人気を...

...

女性が30時間以上浴室に閉じ込められた。この危機的状況でAIは彼女を危険から救うことができるのか?

[[385476]]一人暮らしはとても幸せですが、それでも不便なこともたくさんあります。カバーニュ...

音声認識データベースが人工知能の中核となる

音声認識データベースと音声合成データベースは、人工知能の重要な技術です。機械が人間のように聞き、話し...

「車輪の再発明」を拒否し、EasyDL で AI カスタム開発を体験できます

[[414878]]私たちは、あらゆるものが感知され、接続され、インテリジェントになる世界に突入して...

アルゴリズムエンジニアも35歳でこのハードルにぶつかるのでしょうか?

[[327792]]はじめに: この質問は、実はほとんどのプログラマーに当てはまります。国内のイン...

...

人工知能の仮想火災は死体の山を残した

ハリウッドのSF大作では、人工知能は常に、将来の人類の生存を脅かす自己認識機械として定義されています...

...