После понимания проблем машинного обучения, которые нам нужно решить, мы можем подумать о том, какие данные нам нужно собирать и какие алгоритмы мы можем использовать. В этой статье мы пройдемся по самым популярным алгоритмам машинного обучения, чтобы получить представление о том, какие методы могут быть полезны. В области машинного обучения существует множество алгоритмов, и каждый из них имеет множество расширений, поэтому очень сложно определить, какой из них является правильным для конкретной проблемы. В этой статье я хочу показать вам два способа, как можно объединить алгоритмы, встречающиеся в реальности.
Алгоритмы делятся на различные типы в зависимости от того, как они обрабатывают опыт, окружение или что мы называем входом. Учебники машинного обучения и искусственного интеллекта обычно рассматривают методы обучения, к которым могут приспособиться алгоритмы.
Здесь обсуждаются лишь несколько основных стилей обучения или моделей обучения, и есть несколько основных примеров. Такой подход к классификации или организации хорош, потому что он заставляет вас думать о ролях ввода данных и процессе подготовки модели, а затем выбрать алгоритм, который наиболее подходит для вашей проблемы, чтобы получить наилучшие результаты.
Наблюдаемое обучение: вводные данные называются обучающими данными, и имеют известный результат или маркируются. Например, сообщается, является ли письмо спамом, или что цены на акции в течение определенного периода времени. Модель делает прогнозы, которые исправляются, если они ошибаются, и этот процесс продолжается до тех пор, пока она не достигнет определенного правильного стандарта для обучающих данных. Ненаблюдаемое обучение: входные данные не маркируются и не имеют определенного результата. Модели индукционируют структуру и числовые значения данных. Примеры проблем включают в себя обучение правилам ассоциации и проблемы кластеризации, примеры алгоритмов включают в себя алгоритмы Apriori и алгоритмы K-среднего значения. Полунаблюдаемое обучение: входные данные представляют собой смесь маркированных и немаркированных данных, есть некоторые проблемы с прогнозированием, но модели также должны изучать структуру и состав данных. Примеры проблем включают в себя классификационные и регрессивные проблемы, алгоритмические примеры - это в основном расширение алгоритмов неконтролируемого обучения. Усиленное обучение: вводные данные могут стимулировать модель и заставлять модель реагировать. Отзывы получаются не только от процесса обучения, который контролируется, но и от вознаграждения или наказания в окружающей среде. Примеры проблем - это роботоконтроль, примеры алгоритмов включают Q-learning и Temporal difference learning.
При интеграции в бизнес-решения по моделированию данных большинство использует методы контролируемого и неконтролируемого обучения. Следующая горячая тема - полунаблюдаемое обучение, например, классификация изображений, в которой есть большая база данных, но только небольшая часть изображений маркирована.
Алгоритмы в основном классифицируются по функционалу или форме. Например, алгоритмы, основанные на деревьях, алгоритмы нейронных сетей. Это очень полезный способ классификации, но не идеальный.
В этом разделе я перечислил алгоритмы классификации, которые я считаю наиболее интуитивными. Я не исчерпываю алгоритмов или методов классификации, но я думаю, что это поможет читателям получить общую информацию. Если вы знаете что-то, что я не перечислил, пожалуйста, оставьте комментарий.
Регрессия (или регрессивный анализ) занимается отношениями между переменными. Она применяет статистические методы. Примеры нескольких алгоритмов включают:
Ordinary Least Squares Logistic Regression Stepwise Regression Multivariate Adaptive Regression Splines (MARS) Locally Estimated Scatterplot Smoothing (LOESS)
Instance based learning (обучение, основанное на примерах) моделирует задачу принятия решения, причем используемые примеры или примеры очень важны для модели. Этот метод создает базу данных с существующими данными, затем добавляет новые данные, а затем использует метод измерения сходства, чтобы найти наилучшее совпадение в базе данных и сделать прогноз. По этой причине этот метод также известен как метод победителя и метод, основанный на памяти.
k-Nearest Neighbour (kNN) Learning Vector Quantization (LVQ) Self-Organizing Map (SOM)
Это расширение на другие методы (обычно регрессивные), которые способствуют более простым моделям и лучше подходят для индукции. Я перечисляю их здесь, потому что они популярны и сильны.
Ridge Regression Least Absolute Shrinkage and Selection Operator (LASSO) Elastic Net
Decision tree methods (методы дерева решений) создают модель решений, основанную на фактических значениях в данных. Деревья решений используются для решения индукционных и регрессионных задач.
Classification and Regression Tree (CART) Iterative Dichotomiser 3 (ID3) C4.5 Chi-squared Automatic Interaction Detection (CHAID) Decision Stump Random Forest Multivariate Adaptive Regression Splines (MARS) Gradient Boosting Machines (GBM)
Bayesian method - метод применения теоремы Бейеса для решения классификационных и регрессионных задач.
Naive Bayes Averaged One-Dependence Estimators (AODE) Bayesian Belief Network (BBN)
Наиболее известным из Kernel Method является Support Vector Machines. Этот метод отображает входные данные в более высоких измерениях, что облегчает моделирование некоторых классификационных и регрессионных задач.
Support Vector Machines (SVM) Radial Basis Function (RBF) Linear Discriminate Analysis (LDA)
Кластеризация (англ. clustering, сгруппирование) - это сама по себе проблема и метод. Кластеризация обычно классифицируется методом моделирования. Все методы кластеризации организуют данные с помощью единой структуры данных, чтобы в каждой группе было как можно больше общего.
K-Means Expectation Maximisation (EM)
Association rule learning - это метод, используемый для выявления закономерностей между данными, с помощью которых можно обнаружить связи между огромным количеством данных в многомерном пространстве, и эти важные связи могут быть использованы организацией.
Apriori algorithm Eclat algorithm
Искусственные нейронные сети (AI) вдохновлены структурой и функцией биологических нейронных сетей. Они относятся к классу моделирования, часто используемого для регрессионных и классификационных задач, но состоят из сотен алгоритмов и вариантов.
Perceptron Back-Propagation Hopfield Network Self-Organizing Map (SOM) Learning Vector Quantization (LVQ)
Метод Deep Learning является современным обновлением искусственных нейронных сетей. По сравнению с традиционными нейронными сетями, он имеет большее количество более сложных сетевых конструкций, многие методы имеют дело с полунаблюдаемым обучением, в котором есть большие данные, но мало что из них маркировано.
Restricted Boltzmann Machine (RBM) Deep Belief Networks (DBN) Convolutional Network Stacked Auto-encoders
Dimensionality Reduction (уменьшение размера), как и метод кластеризации, преследует и использует единую структуру в данных, но использует меньше информации для редукции и описания данных. Это полезно для визуализации или упрощения данных.
Principal Component Analysis (PCA) Partial Least Squares Regression (PLS) Sammon Mapping Multidimensional Scaling (MDS) Projection Pursuit
Ensemble methods состоят из множества небольших моделей, которые обучаются самостоятельно, делают самостоятельные выводы и в конечном итоге составляют общий прогноз. Много исследований сосредоточено на том, какие модели использовать и как эти модели объединены. Это очень мощный и популярный метод.
Boosting Bootstrapped Aggregation (Bagging) AdaBoost Stacked Generalization (blending) Gradient Boosting Machines (GBM) Random Forest

Это пример сопоставления с помощью комбинированного метода ((из Википедии), где каждый пожарный закон обозначен серым, а окончательный прогноз последнего синтеза - красным.
Эта экскурсия по алгоритмам машинного обучения предназначена для того, чтобы дать вам общее представление о том, что такое алгоритмы, и некоторые инструменты, связанные с алгоритмами.
Ниже приведены некоторые другие ресурсы, не думайте, что это слишком много, чем больше вы узнаете об алгоритмах, тем лучше для вас, но глубокое знание некоторых алгоритмов также может быть полезным.
Копировано из колонки Бэрла / разработчики Python