Факторизация неотрицательных матриц в машинном обучении
Факторизация неотрицательных матриц (NNMF) – это группа алгоритмов машинного обучения, используемых в многомерном анализе и линейной алгебре. Она используется вместо PCA, когда набор данных состоит из неотрицательных элементов. Если вы ничего не знаете о концепции NNMF, эта статья для вас. В этой статье я расскажу вам о факторизации неотрицательных матриц в машинном обучении и ее реализации с использованием Python.
Факторизация неотрицательных матриц
Факторизация неотрицательной матрицы (NNMF) также известна как приблизительная неотрицательная матрица. Когда функции набора данных содержат неотрицательные элементы, можно использовать NNMF вместо стандартного анализа главных компонентов. NNMF состоит из группы алгоритмов, в которых матрица разбивается на две матрицы W и H с таким свойством, что ни одна матрица не имеет отрицательных элементов.
Таким образом, подход NNMF очень эффективен для наборов данных изображений и текста, в которых нет отрицательных элементов. Алгоритм работает, задавая случайные значения для W и H, пока W и H не станут стабильными.
Реализация NNMF с использованием Python
NNMF используется вместо анализа главных компонентов, когда набор данных содержит неотрицательные элементы. Основное различие между NNMF и PCA заключается в том, что в PCA у нас нет ограничений на объясненную дисперсию, даже если матрицы неотрицательны. Теперь давайте посмотрим, как это реализовать с помощью языка программирования Python. Здесь я буду использовать подход NNMF для набора данных радужной оболочки:
from sklearn.datasets import load_iris from sklearn.decomposition import NMF data = load_iris() nmf = NMF(n_components=3, init='random', l1_ratio=0.1) x = nmf.fit_transform(data.data) print(nmf.inverse_transform(x[0]))
Результат:
[5.09930918 3.50128354 1.40077688 0.19798814]
Резюме
Вот как мы можем использовать подход NNMF с Python с помощью библиотеки scikit-learn. NNMF – это группа алгоритмов машинного обучения, используемых в многомерном анализе и линейной алгебре. Он используется вместо анализа главных компонентов, когда набор данных содержит неотрицательные элементы. Надеюсь, вам понравилась эта статья о введении в факторизацию неотрицательных матриц (NNMF) в машинном обучении и ее реализации с использованием Python.