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

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

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

ブログ    
ブログ    

推薦する

人工知能が注目を集め、ロボットキャスターが生放送の「新参者」に

北京ビジネスデイリー(陳偉記者) 知能ロボットは記者、シェフ、囲碁の達人になった後、最近は生放送業界...

...

アルゴリズム図: 括弧が有効かどうかを判断するにはどうすればよいでしょうか?

[[346613]]この記事はWeChatの公開アカウント「Java Chinese Commun...

Gemini 1.5 ハンズオンレビュー: Sora は偽物に見えるが、もっと素晴らしい機能がある

Googleの「反撃」が来た!ジェミニはソラに脚光を奪われましたが、今は再び脚光を浴びているようです...

中国の「データブリックス」:AIインフラの構築に真剣に取り組む

AI導入の最大の推進要因はインフラのアップグレードです。近年、ビッグデータ分析やAIなどの分野が注目...

理解を助ける7種類の人工知能

[[269361]] [51CTO.com クイック翻訳] 人工知能は、これまでで最も驚くべきイノベ...

レポートの解釈: 企業の 91% が 2023 年に AI がビジネスの成長を促進すると予想

[[245538]]人工知能 (AI) により、早期導入メーカーはすでに分析、ビジネス インテリジェ...

AI時代に医療データの品質が重要な理由

効果的な医療データ分析においては、データの品質は主観的なものになります。データから得られる情報の正確...

Google、機械学習を使用して医療イベントを予測するFHIRプロトコルバッファツールをオープンソース化

先月26日、GoogleはarXivに「電子健康記録のためのスケーラブルで正確なディープラーニング」...

AIが自動化に適した日常的なITタスク3つ

AIで自動化できる3つのITタスク幸いなことに、人工知能が役に立ちます。ここでは、AI が手動で実行...

Xiaomi、自社開発のモバイルディープラーニングフレームワークMACEのソースを公開

6月28日、Xiaomiの人工知能およびクラウドプラットフォーム担当副社長である崔宝秋博士は、オープ...

美団点評におけるディープラーニングの応用

序文近年、ディープラーニングは音声、画像、自然言語処理などの分野で優れた成果を上げており、最も注目さ...

建設業界には後継者がいないのでしょうか?考えすぎです!建設ロボットがやって来ます!

世界の建設業界の現状人口ボーナスの消滅により、中国の建設業界は人件費への大きな圧力に直面しているほか...

Google Cloud AI が機械学習にどのように役立つかを包括的に説明します

[51CTO.com クイック翻訳] 調査によると、Google Cloud AI および機械学習プ...

CMU のポスドクらが NLP データ処理ツールを発表

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