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

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

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

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

推薦する

...

ElevenLabs、元の話し手の声と感情を維持するAI翻訳吹き替え機能を発表

AIテキスト読み上げ会社ElevenLabsは10月11日、火曜日にAI Dubbingを発表した。...

ディープラーニングに基づく教師あり音声分離

概要: 音声分離は、対象の音声を背景の干渉から分離するタスクです。従来、音声分離は信号処理の問題とし...

地下鉄路線図のための高速経路探索アルゴリズム

1. 概要過去2日間、Blog Parkで地下鉄マップの実装について話していました。その前に、私もク...

アイデアから実装まで、2018 年の 13 の驚くべき新しい NLP 研究

2018 年には、自然言語処理の分野で多くの刺激的なアイデアやツールが生まれました。概念的な視点から...

従来のジムも人工知能によって消滅してしまうのでしょうか?

[[336339]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

人工知能は都市をよりインテリジェントに発展させる力を与える

人工知能などのハイテク手段を基盤として構築された都市脳は、都市の経済発展のための「ブラックテクノロジ...

...

このAIは顔の筋肉の信号を捉え、嘘をついているかどうかを73%の精度で判定します。しかし、テスト結果を信頼できますか?

ビッグデータダイジェスト制作著者: カレブ議論の余地はあるものの、人が嘘をついているかどうかを見抜く...

...

...

人工知能が地震監視を新たな時代へ導く

[[388691]]被害の程度を軽減することは地震研究者にとって重要な目標です。破壊的な地震が発生し...

これらの6つのヒントを活用してAIガバナンスの問題を解決しましょう

AI ガバナンスは、データ プライバシー、アルゴリズムのバイアス、コンプライアンス、倫理など、企業内...

業界大混乱! 2020年に人工知能がIT業界にもたらす4つの変化

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

人工知能の3つの浮き沈みと、寒い冬の可能性

[[437677]]より長期的な視点で見ると、中国は歴史上、3つの発展の波と2つの谷を経験してきたこ...