- PVSM.RU - https://www.pvsm.ru -
Здравствуйте, Читатели!
Недавно я запустил репозиторий 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-м этаже.
В задачах связанных с классификацией мы разбиваем данные на классы в зависимости от параметров этих данных. Примером задачей классификации может быть распознавание спама. В зависимости от текста письма (входящие данные) мы относим каждое письмо к одному из двух классов ("спам" или "не спам").
В задачах кластеризации мы разбиваем наши данные на кластеры, которые заранее нам неизвестны. Эти алгоритмы могут использоваться для сегментации рынка, анализа социальных и не только сетей.
Нейронные сети скорее являются не алгоритмом, а "паттерном" или "фреймворком" для организации разных алгоритмов машинного обучения в одну систему для дальнейшего анализа сложных входных данных.
В задачах связанных с поиском аномалий мы пытаемся выделить те экземпляры данных, которые выглядят "подозрительно" в сравнении с большинством других экземпляров. Например определение нетипичных (подозрительных) транзакций по банковской карте.
Я надеюсь, что вы найдете репозиторий [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
Нажмите здесь для печати.