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

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

この記事では、ガウス混合モデルを使用して 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 年経って、反論されたのでしょうか?ジェフ・ディーンの論文はソースコードを隠蔽した疑いで公式調査中

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能技術が英語学習にどのように役立つかについての簡単な議論

人工知能技術は私たちの日常の仕事、勉強、生活に溶け込み、静かに社会生活を変えています。人工知能技術は...

...

...

AIが予測分析アプリケーションに与える影響

人工知能 (AI) を使用した予測分析により、企業は過去のデータに基づいて将来の結果を予測し、運用効...

...

「3D ガウス」バージョンですべてをセグメント化: ミリ秒単位で 3D セグメンテーション、1,000 倍高速

今年4月、Metaは「Segment Everything(SAM)」AIモデルをリリースしました。...

OpenAIのチップ製造計画が明らかに!独自のAIチップを開発する計画があり、買収対象を検討中

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

TCP輻輳制御アルゴリズムについての簡単な説明

最近、TCP/IP プロトコルの学習に時間を費やしました。主な理由は、TCP/IP に関する私の理解...

あなたの仕事はAIに置き換えられるでしょうか?李開復氏は、これらの4種類の仕事について心配する必要はないと述べている。

[[255576]]最近、李開復氏はタイム誌に「人工知能は強力だが、誤解されている。労働者を守るに...

AIは現実世界に対応できる準備ができているでしょうか?

人工知能技術は、今日の状況に対応し、現実世界に適用するのに苦労しています。テクノロジーに興味があるな...

618 プロモーション開始、Huice が小売業者が数分で速達を実現できるようにする方法を公開

618ショッピングフェスティバルのさまざまな成果が発表されたばかりで、「数分以内に配達」のスピードが...

ARMベースの3DES暗号化アルゴリズムの実装(1)

暗号化アルゴリズムは主にソフトウェアとハ​​ードウェアを通じて実装されます。ソフトウェア実装には柔軟...

人工知能の安全で制御可能な開発について議論するために、AIセキュリティと産業ガバナンスフォーラムが正式に開催されました。

第四次科学技術革命をリードする戦略的技術として、人工知能は社会構築と経済発展に重大かつ広範囲な影響を...

電流制限アルゴリズムを理解すれば十分です。

TL;DR (長すぎるので読まないでください)現在の制限アルゴリズム: カウンター、スライディング...