- PVSM.RU - https://www.pvsm.ru -

Машинное обучение на Python-е с интерактивными Jupyter демонстрациями

image

Здравствуйте, Читатели!

Недавно я запустил репозиторий Homemade Machine Learning [1], который содержит примеры популярных алгоритмов и подходов машинного обучения, таких как линейная регрессия, логистическая регрессия, метод K-средних и нейронная сеть (многослойный перцептрон). Каждый алгоритм содержит интерактивные демо-странички, запускаемые в Jupyter NBViewer-e или Binder-e. Таким образом у каждого желающего есть возможность изменить тренировочные данные, параметры обучения и сразу же увидеть результат обучения, визуализации и прогнозирования модели у себя в браузере без установки Jupyter-а локально.

Целью данного репозитория является реализация алгоритмов почти с нуля, для того, чтобы иметь более детальное понимание математических моделей, который стоят за каждым из алгоритмов. Основными используемыми библиотеками стали NumPy [2] и Pandas [3]. Эти библиотеки используются для эффективных операций над матрицами, а так же для загрузки и парсинга CSV данных. В демо-страничках для построения графиков и визуализации тренировочных данных так же используются библиотеки Matplotlib [4] и Plotly [5]. В случае с логистической регрессией для минимизации функции потерь используется библиотека SciPy [6], но в остальных случаях градиентный спуск реализован на чистом NumPy/Python-е. Использование библиотек на подобии PyTorch [7] или TensorFlow [8] избегается из-за обучающей цели репозитория.

На данный момент в репозитории реализованы следующие алгоритмы…

Регрессия. Линейная регрессия.

В задачах, связанных с регрессией мы пытаемся предсказать реальное число на основании входящих данных. По сути мы строим линию/плоскость/n-мерную плоскость вдоль тренировочных данных, чтобы иметь возможность сделать прогноз для входных данных, отсутствующих в тренировочном сете. Это происходит, например, если мы хотим предсказать стоимость 2-х комнатной квартиры, в центре города N, на 7-м этаже.

Классификация. Логистическая регрессия.

В задачах связанных с классификацией мы разбиваем данные на классы в зависимости от параметров этих данных. Примером задачей классификации может быть распознавание спама. В зависимости от текста письма (входящие данные) мы относим каждое письмо к одному из двух классов ("спам" или "не спам").

Кластеризация. Метод K-средних.

В задачах кластеризации мы разбиваем наши данные на кластеры, которые заранее нам неизвестны. Эти алгоритмы могут использоваться для сегментации рынка, анализа социальных и не только сетей.

Нейронные сети. Многослойный перцептрон (MLP).

Нейронные сети скорее являются не алгоритмом, а "паттерном" или "фреймворком" для организации разных алгоритмов машинного обучения в одну систему для дальнейшего анализа сложных входных данных.

Поиск аномалий с помощью распределения Гаусса

В задачах связанных с поиском аномалий мы пытаемся выделить те экземпляры данных, которые выглядят "подозрительно" в сравнении с большинством других экземпляров. Например определение нетипичных (подозрительных) транзакций по банковской карте.


Я надеюсь, что вы найдете репозиторий [1] полезным, либо экспериментируя с демонстрациями каждого алгоритма, либо читая о математических моделях, стоящими за ними, либо анализируя детали имплементации каждого из них.

Успешного кодинга!

Автор: Алексей

Источник [26]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/302980

Ссылки в тексте:

[1] Homemade Machine Learning: https://github.com/trekhleb/homemade-machine-learning

[2] NumPy: http://www.numpy.org/

[3] Pandas: https://pandas.pydata.org/

[4] Matplotlib: https://matplotlib.org/

[5] Plotly: https://plot.ly/

[6] SciPy: https://www.scipy.org/

[7] PyTorch: https://pytorch.org/

[8] TensorFlow: https://www.tensorflow.org/

[9] Математическая модель: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/linear_regression

[10] Пример имплементации на Python: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/linear_regression/linear_regression.py

[11] Демонстрация линейной регрессии с одним параметром: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/univariate_linear_regression_demo.ipynb

[12] Демонстрация линейной регрессии с несколькими параметрами: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/multivariate_linear_regression_demo.ipynb

[13] Демонстрация нелинейной регрессии: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/linear_regression/non_linear_regression_demo.ipynb

[14] Математическая модель: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression

[15] Пример имплементации на Python: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/logistic_regression/logistic_regression.py

[16] Демонстрация логистической регрессии с линейными границами: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_linear_boundary_demo.ipynb

[17] Демострация логистичекой регрессии с нелинейными границами: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/logistic_regression_with_non_linear_boundary_demo.ipynb

[18] Демонстрация логистической регрессии с множеством параметров: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/logistic_regression/multivariate_logistic_regression_demo.ipynb

[19] Математическая модель: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/k_means

[20] Пример имплементации на Python: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/k_means/k_means.py

[21] Демонстрация метода К-средних: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/k_means/k_means_demo.ipynb

[22] Математическая модель: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network

[23] Пример имплементации на Python: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/neural_network/multilayer_perceptron.py

[24] Демонстрация многослойного перцептрона: https://nbviewer.jupyter.org/github/trekhleb/homemade-machine-learning/blob/master/notebooks/neural_network/multilayer_perceptron_demo.ipynb

[25] Математическая модель: https://github.com/trekhleb/homemade-machine-learning/blob/master/homemade/anomaly_detection

[26] Источник: https://habr.com/post/433886/?utm_source=habrahabr&utm_medium=rss&utm_campaign=433886