cyber-security-resources/ai_research/ML_Fundamentals/ai_generated/data/ai_generated_python_scripts/Gaussian_Mixture_Models_(GMM).md
2023-09-04 23:55:02 -04:00

1.4 KiB

Sure! Here's a Python script that demonstrates the concept of Gaussian Mixture Models (GMM) using the scikit-learn library:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture

# Generate random data
np.random.seed(0)
n_samples = 1000
n_components = 3
X = np.concatenate([
    np.random.multivariate_normal([0, 0], [[1, 0], [0, 20]], int(0.1 * n_samples)),
    np.random.multivariate_normal([-5, 0], [[1, 0], [0, 1]], int(0.3 * n_samples)),
    np.random.multivariate_normal([5, 10], [[4, 0], [0, 4]], int(0.6 * n_samples))
])

# Fit the GMM model
gmm = GaussianMixture(n_components=n_components)
gmm.fit(X)

# Predict the labels for the data samples
y_pred = gmm.predict(X)

# Visualize the results
plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='viridis')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Gaussian Mixture Models')
plt.show()

In this script, we first generate random data points from three different Gaussian distributions. We then use the GaussianMixture class from scikit-learn to fit a GMM model on this data. Next, we use the learned GMM model to predict the labels for each data sample. Finally, we visualize the results by plotting the data points colored according to their predicted labels.

Please make sure you have the scikit-learn and matplotlib libraries installed in your Python environment before running this script.