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

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

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

ブログ    

推薦する

ビジュアルMambaモデルのSwinの瞬間:中国科学院、HuaweiなどがVMambaを発表

大型模型の分野におけるトランスフォーマーの地位は揺るぎない。しかし、モデルのサイズが拡大し、処理する...

NVIDIA、医療用 AI コンピューティング プラットフォームを発表

NVIDIA は最近、AI 駆動型イメージング、ゲノミクス、スマート センサーの開発と展開のための...

...

10万ドル+26日、低コスト1000億パラメータLLMが誕生

大規模言語モデル (LLM) には、デコーダーのみの構造 (GPT や LLAMA シリーズ モデル...

...

バックエンド開発にとってどれほど恥ずかしいことでしょうか?フロントエンドプログラマーの給与が明らかに

最近、バックエンドで数年間働いてきたプログラマーが、かなり混乱を招く質問をオンラインで提起しました。...

...

なぜ R&D 管理はコスト削減と効率向上のための永遠の特効薬と考えられているのでしょうか?

過去2年間で、インターネット業界の人口ボーナスはピークに達し、成長率は鈍化したというのが業界の全会一...

AI に物語を伝える: シーンを想像するように教えるにはどうすればよいでしょうか?

[[282830]]視覚的な想像力は人間が生まれながらに持っているものです。AI は同様の能力を持...

GitHub Wanxing の中国語機械学習リソース: ロードマップ、ビデオ、学習提案がすべてここにあります

[[263087]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

言葉はもっと欺瞞的だ! MITの最新研究:DeepFakeによる顔の加工はペンを使った編集ほど良くない

​DeepFake は発売以来、潜在的な「悪質な AI」としてリストアップされてきました。 有名な「...

グラフディープラーニングで複雑な研究​​タイプのタスクを実装するのは、あまりにも面倒ですか?この新しいツールキットは、

ディープラーニングは、AI分野で最も注目されている分野の1つです。現在、PyGやDGLなどの主流のグ...

人工知能が登場して60年になります。人工知能について私たちはどんな誤解をしているのでしょうか?

8月23日、百度のCEOであるロビン・リー氏は中国国際知能産業博覧会で講演し、一般の人々は人工知能...

...