Мне нужно реализовать алгоритм EM для подгонки GMM к данным изображения (пиксели). Данные были предоставлены в виде файла .mat. Данные аналогичны набору данных MNIST. Таким образом, это матрица изображений с формой 784 x 1990. Есть изображения 1990 года, и каждый столбец матрицы соответствует одному изображению размером 28 x 28 пикселей (т.е. 28 * 28 = 784).
I см. множество примеров онлайн для EM в python, но ни одного для работы с изображениями. Большинство генерируют данные, как показано ниже. Как я должен работать с этими векторами изображения пикселей? Я не уверен, как изменить его или как начать эту задачу. Я усредняю пиксели каждого столбца? Какой должна быть моя цель X - список или список списков? По моему скромному мнению, мне нужно получить координаты x, y для каждого черно-белого изображения.
random_seed=36788765
np.random.seed(random_seed)
Mean1 = 2.0 # Input parameter, mean of first normal probability distribution
Standard_dev1 = 4.0 #@param {type:"number"}
Mean2 = 9.0 # Input parameter, mean of second normal probability distribution
Standard_dev2 = 2.0 #@param {type:"number"}
# generate data
y1 = np.random.normal(Mean1, Standard_dev1, 1000)
y2 = np.random.normal(Mean2, Standard_dev2, 500)
data=np.append(y1,y2)
Или вот так, где есть X и Y, чтобы сгенерировать график рассеяния:
from sklearn.datasets.samples_generator import make_blobs
# Create dataset
X,Y = make_blobs(cluster_std=1.5,random_state=20,n_samples=500,centers=3)```