└── Em algorithm.ipynb /Em algorithm.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 3, 6 | "id": "03234774", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Means: [[6.5 8. ]\n", 14 | " [1.16666667 1.13333333]]\n", 15 | "Covariances: [[[2.25000100e+00 6.31088724e-29]\n", 16 | " [6.31088724e-29 1.00000000e-06]]\n", 17 | "\n", 18 | " [[5.55565556e-02 1.11111111e-01]\n", 19 | " [1.11111111e-01 2.48889889e-01]]]\n", 20 | "Mixing probabilities: [0.4 0.6]\n", 21 | "Predicted labels for new data: [1 1]\n" 22 | ] 23 | } 24 | ], 25 | "source": [ 26 | "import numpy as np\n", 27 | "from sklearn.mixture import GaussianMixture\n", 28 | "# Define data (replace with your actual data)\n", 29 | "X = np.array([[1, 1], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6]])\n", 30 | "# Define the number of Gaussian components (clusters)\n", 31 | "n_components = 2\n", 32 | "# Create and fit the GMM model\n", 33 | "gmm = GaussianMixture(n_components=n_components)\n", 34 | "gmm.fit(X)\n", 35 | "# Print the fitted parameters\n", 36 | "print(\"Means:\", gmm.means_)\n", 37 | "print(\"Covariances:\", gmm.covariances_)\n", 38 | "print(\"Mixing probabilities:\", gmm.weights_)\n", 39 | "# Predict cluster labels for new data points (optional)\n", 40 | "new_data = np.array([[0.5, 0.8], [6, 9]])\n", 41 | "labels = gmm.predict(new_data)\n", 42 | "print(\"Predicted labels for new data:\", labels)" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 4, 48 | "id": "10504059", 49 | "metadata": {}, 50 | "outputs": [], 51 | "source": [ 52 | "import matplotlib.pyplot as plt" 53 | ] 54 | }, 55 | { 56 | "cell_type": "code", 57 | "execution_count": 13, 58 | "id": "7dc5bca7", 59 | "metadata": {}, 60 | "outputs": [ 61 | { 62 | "data": { 63 | "text/plain": [ 64 | "(array([[0.54054054, 0.27027027, 0. , 0. , 0. ,\n", 65 | " 0.27027027, 0. , 0. , 0. , 0.27027027],\n", 66 | " [0.54054054, 0.27027027, 0. , 0. , 0. ,\n", 67 | " 0. , 0. , 0. , 0. , 0.54054054]]),\n", 68 | " array([0.6 , 1.34, 2.08, 2.82, 3.56, 4.3 , 5.04, 5.78, 6.52, 7.26, 8. ]),\n", 69 | " )" 70 | ] 71 | }, 72 | "execution_count": 13, 73 | "metadata": {}, 74 | "output_type": "execute_result" 75 | }, 76 | { 77 | "data": { 78 | "image/png": "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\n", 79 | "text/plain": [ 80 | "
" 81 | ] 82 | }, 83 | "metadata": { 84 | "needs_background": "light" 85 | }, 86 | "output_type": "display_data" 87 | } 88 | ], 89 | "source": [ 90 | "plt.hist(X,density=True)" 91 | ] 92 | } 93 | ], 94 | "metadata": { 95 | "kernelspec": { 96 | "display_name": "Python 3 (ipykernel)", 97 | "language": "python", 98 | "name": "python3" 99 | }, 100 | "language_info": { 101 | "codemirror_mode": { 102 | "name": "ipython", 103 | "version": 3 104 | }, 105 | "file_extension": ".py", 106 | "mimetype": "text/x-python", 107 | "name": "python", 108 | "nbconvert_exporter": "python", 109 | "pygments_lexer": "ipython3", 110 | "version": "3.9.12" 111 | } 112 | }, 113 | "nbformat": 4, 114 | "nbformat_minor": 5 115 | } 116 | --------------------------------------------------------------------------------