Графическое машинное обучение (убить кота с несколькими картинками)

машинное обучение искусственный интеллект алгоритм JavaScript

Предупреждение: мультиизображение убивает кошек!

Всякий раз, когда упоминается машинное обучение, люди всегда путаются в различных алгоритмах и методах и чувствуют, что понятия не имеют, с чего начать. Действительно, способов машинного обучения довольно много, но если вы освоите правильный путь и метод, все еще есть следы, по которым нужно следовать.Здесь я рекомендую эту статью Ли Хуэя из SAS.блог, в котором описывается, как выбирать различные подходы к машинному обучению.

Кроме того,Scikit-learnОн также предоставляет четкую дорожную карту для каждого на выбор:

На самом деле, основные алгоритмы машинного обучения очень просты.Давайте рассмотрим некоторые основные алгоритмы машинного обучения и их принципы с использованием двумерных данных и интерактивной графики. (Дополнительно кBret VictorСалют, егоInventing on principleсильно тронул меня)

Весь код, т. е. демоверсии, можно найти по адресумоя кодовая ручкаэтоCollectionнайти в.

Во-первых, крупнейшая отрасль машинного обученияКонтролируемое и неконтролируемое обучениеКороче говоря, обучение с учителем — это когда данные помечены, а обучение без учителя — когда данные не помечены. С точки зрения широкой классификации,Снижение размерностиикластеризацияклассифицируется как неконтролируемое обучение,возвращениеиКлассификацияЭто относится к обучению с учителем.

 

неконтролируемое обучение

Если ни один из ваших данных не помечен, вы можете заплатить кому-то, чтобы он пометил ваши данные, или использовать неконтролируемый подход к обучению.

Прежде всего, вы можете подумать, стоит ли уменьшать размерность данных.

 

Снижение размерности

Уменьшение размерности, как следует из названия, заключается в преобразовании данных высокой размерности в данные низкой размерности. Распространенные методы уменьшения размерности включают PCA, LDA, SVD и т. д.

 

Анализ основных компонентов PCA

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

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

See the Pen ML Explained PCA by gangtao (@gangtao) on CodePen.

Для получения дополнительных примеров, связанных с PCA, вы можете обратиться к:

 

кластеризация

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

 

Иерархический кластер

Долженкластеризацияметод используется для построения кластера с иерархической структурой,

Как показано на рисунке выше, алгоритм иерархической кластеризации очень прост:

  1. В начальный момент все точки сами являются кластером
  2. Найдите два ближайших кластера (то есть две точки в начале), чтобы сформировать кластер
  3. Расстояние между двумя кластерами относится к расстоянию между двумя ближайшими точками в кластере.
  4. Повторяйте второй шаг, пока все точки не будут сгруппированы в кластеры.

See the Pen ML Explained Hierarchical Clustering by gangtao (@gangtao) on CodePen.

 

KMeans

KMeans Китайский перевод Алгоритм K-средних является наиболее распространенным алгоритмом кластеризации.

  1. Случайным образом возьмите K (здесь K = 3) центральных исходных точек на графике.
  2. Затем найдите расстояния от всех точек графа до центральных исходных точек K. Если точка P является ближайшей к центральной точке S, то P принадлежит кластеру точек S.
  3. Далее мы хотим переместить центральную точку в центр своего «кластера».
  4. Затем повторяем шаги 2) и 3) до тех пор, пока центральная точка не перестанет двигаться, затем алгоритм сходится и все кластеры найдены.

Есть несколько проблем с алгоритмом KMeans:

  1. Как определить значение K, в примере выше я знаю, что есть три кластера, поэтому я выбираю K равным 3, но в практических приложениях я часто не знаю, на сколько категорий следует разбить
  2. Поскольку начальное положение центральной точки случайное, оно может быть классифицировано неправильно, вы можете попробовать разные данные в моем Codepen.
  3. Как показано на рисунке ниже, при особом распределении данных в пространстве алгоритм KMeans не может быть эффективно классифицирован. Точки посередине назначены оранжевым и синим соответственно, и все они должны быть синими.

See the Pen ML Explained KMeans by gangtao (@gangtao) on CodePen.

 

DBSCAN

DBSCAN (Пространственная кластеризация приложений с шумом на основе плотности) Китайский — это алгоритм кластеризации на основе плотности.

Алгоритм DBSCAN основан на том, что:Кластер может быть однозначно идентифицирован любым из основных объектов внутри него..

Конкретный процесс кластеризации алгоритма выглядит следующим образом: сканировать весь набор данных, найти любую основную точку и расширить основную точку. Метод расширения заключается в том, чтобы найти все точки данных, связанные по плотности, из базовой точки (обратите внимание, что плотность связана). Пройдите все основные точки в окрестности основной точки (поскольку граничные точки не могут быть расширены) и найдите точки, которые тесно связаны с этими точками данных, пока не останется расширяемых точек данных. Все граничные узлы конечных кластеризованных кластеров являются неосновными точками данных. После этого набор данных повторно сканируется (исключая любые точки данных в ранее найденных кластерах), ища основные точки, которые не были сгруппированы, а затем повторяют описанные выше шаги для расширения основных точек до тех пор, пока в наборе не будет новых основных точек. набор данных. пока. Точки данных, не включенные ни в один из кластеров в наборе данных, представляют собой выбросы.

See the Pen ML Explained DBSCAN by gangtao (@gangtao) on CodePen.

Как показано на рисунке выше, DBSCAN может эффективно обрабатывать набор данных, который KMeans не может правильно классифицировать. И нет необходимости знать значение К.

Конечно, DBCSAN все еще должен решить два параметра, как решить эти два параметра является ключевым фактором эффекта классификации:

  1. Одним из параметров является радиус (Eps), который представляет собой протяженность круговой окрестности с центром в заданной точке P;
  2. Другой параметр — это минимальное количество точек (MinPts) в окрестности с центром в точке P. Если число точек в окрестности с центром в точке P и радиусом Eps не меньше MinPts, то точка P называется центральной точкой.

 

контролируемое обучение

Данные в обучении с учителем требуют меток. То есть прогнозирование новых данных на основе существующих результатов. Если прогнозируемое содержание является числовым, мы называем это регрессией, а если прогнозируемое содержание является категориальным или дискретным, мы называем это классификацией.

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

 

возвращение

 

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

Линейная регрессия — самый классический алгоритм регрессии.

В статистике,Линейная регрессия(Линейная регрессия) — это использованиеЛинейная регрессияФункция наименьших квадратов уравнений, которая моделирует взаимосвязь между одной или несколькими независимыми и зависимыми переменными.возвращениеанализировать. Такая функция называется одной или несколькимивозвращениекоэффициенты параметров моделилинейныйкомбинация. Случай только с одной независимой переменной называется простымвозвращение, более чем одна независимая переменная называется многомернойвозвращение.

See the Pen ML Explained Linear Regression by gangtao (@gangtao) on CodePen.

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

Если требования к точности алгоритма относительно высоки, рекомендуемые алгоритмы регрессии включают:случайный лес,Нейронные сетиилиGradient Boosting Tree.

Если скорость является приоритетом, рекомендуется рассмотретьДрево решенийиЛинейная регрессия.

 

Классификация

 

Метод опорных векторов SVM

Если требования к точности классификации относительно высоки, алгоритмы, которые можно использовать, включают:Kernel SVM,случайный лес,Нейронные сетиа такжеGradient Boosting Tree.

Учитывая набор обучающих экземпляров, каждый из которых помечен как принадлежащий к тому или иному из двух классов, обучающий алгоритм SVM создает модель, которая присваивает новые экземпляры одному из двух классов, превращая его в невероятностный двухметалинейный классификатор. Модель SVM предназначена для представления экземпляров в виде точек в пространстве, чтобы при отображении экземпляры отдельных классов были разделены как можно более широким заметным интервалом. Затем сопоставьте новые экземпляры с тем же пространством и предскажите, к какому классу они принадлежат, исходя из того, на какую сторону интервала они попадают.

See the Pen ML Explained SVM by gangtao (@gangtao) on CodePen.

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

See the Pen ML Explained SVM Kernels by gangtao (@gangtao) on CodePen.

На приведенном выше рисунке показаны различные эффекты классификации различных методов ядра.

 

Древо решений

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

Дерево решений представляет собой древовидную структуру (Может быть бинарным деревом или небинарным деревом).

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

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

Деревья решений можно использовать для регрессии или классификации.На рисунке ниже показан пример классификации.

See the Pen ML Explained Decision Tree by gangtao (@gangtao) on CodePen.

Как показано на рисунке выше, дерево решений делит пространство на разные области.

 

логистическая регрессия

Логистическая регрессия, хотя и называется регрессией, представляет собой алгоритм классификации. Поскольку это бинарная классификация, похожая на SVM, математическая модель должна предсказывать вероятность 1 или 0. Итак, я говорю, что регрессия и классификация по сути одно и то же.

See the Pen ML Explained Logistic Regression by gangtao (@gangtao) on CodePen.

Здесь следует обратить внимание на разницу между логистической регрессией и классификацией линейного SVM, вы можете прочитать:

 

Наивный Байес

Когда объем данных достаточно велик, хорошим выбором будет метод наивного Байеса.

15 лет я был в компании моих друзейПоделитьсяЧерез метод байерса,жаль колонку замуровали.Если интересно,можете найти способ сами.

See the Pen ML Explained Naive Bayes by gangtao (@gangtao) on CodePen.

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

 

KNN

Классификация KNN, вероятно, является самым простым из всех алгоритмов машинного обучения.

See the Pen ML Explained KNN by gangtao (@gangtao) on CodePen.

Как показано на рисунке выше, K=3, переместите мышь в любую точку, найдите K точек, ближайших к этой точке, а затем проголосуйте за эти K точек, и победит большинство голосов. Это так просто.

 

Суммировать

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

Ссылаться на:

  • Код и демонстрационные анимации
    • мойCodepen CollectionВесь демонстрационный код включен
    • мойgithubВсе демонстрационные анимации включены
  • Библиотеки классов и демонстрации для машинного обучения на основе JavaScript
  • Если вы хотите создать свои собственные алгоритмы машинного обучения, вы можете использовать некоторые базовые математические библиотеки.
    • Numeric Javascript Это библиотека классов для числовых расчетов и анализа на основе JavaScript, предоставляющая такие функции, как линейная алгебра и вычисление комплексных чисел.
    • MathjsЕще одна библиотека математических вычислений на основе JavaScript, эту и предыдущую можно рассматривать как то же самое, что и Python.numpy/scipy/sympyБиблиотеки для JavaScript.
    • Victorjs2D-векторная библиотека
  • Порекомендуйте несколько дорожных карт для машинного обучения
  • инструмент
1 лайк3 избранныхКомментарий