Могу ли я уменьшить количество компонентов GMM после его обучения? - PullRequest
0 голосов
/ 08 июля 2019

Я хочу взять GMM, подогнанный с использованием n компонентов, и преобразовать его в GMM компонента am, так чтобы квадратичная ошибка между PDF-файлами GMM компонента m и n была сведена к минимуму.(м <п).Каков наиболее эффективный способ сделать это? (Без необходимости писать много кода) </p>

Причина, по которой я хочу это сделать, заключается в том, чтобы я мог создать GMM, который постоянно обновляется с поступающими новыми данными.Так как scikit-learn не предоставляет метод part_fit для GaussianMixture, я подумал, что могу сделать что-то вроде ниже.

  1. Получить пакет новых данных.Обучаем 2-компонентный GMM -> Скажем, GMM_1
  2. Аналогичным образом обучаем GMM для каждой поступающей партии новых данных.
  3. Теперь у нас есть набор GMM - {GMM_1, GMM_2, ....GMM_N}
  4. Теоретически у меня есть GMM компонента 2 * N, если я отображаю общий PDF как суммирование PDF всех вышеупомянутых GMM.
  5. Я хочу подогнать 2-компонентный GMM для представленияобщий pdf N-GMM выше.
from sklearn.mixture import GaussianMixture
GMM_each = []
count = 0
while not new_data == None:
    GMM_each[count] = GaussianMixture(n_components=2).fit(new_data)
    count += 1
GMM_combined = desired_fn(GMM_each)
...