Самый простой алгоритм для начала работы с машинным обучением

Привет меня зовут Алекс. И эта статья об алгоритме KNN. Прошло много времени с тех пор, как я впервые встретил термин «машинное обучение». Мне, как фронтенд-разработчику, всегда было сложно это понять. Есть так много вещей, как контролируемое, неконтролируемое, обучение с подкреплением. Сотни типов алгоритмов и нейронных сетей.

Поэтому я искал некоторые мягкое начало. Алгоритм, который легко понять с базовым уровнем математики.

Как это работает?

назад.png

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

У нас есть поле. Допустим, в одной части этого поля в основном круги. А с другой стороны в основном треугольники. Все они имеют координаты (X, Y). Не квантовая физика, ха.

К какому типу относится точка с выбранными координатами (x, y)?

Шаг 1 — давайте измерим расстояние

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

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

Формула евклидова расстояния для двумерного пространства
расстояние.png

альтернативный

РасстояниеТип
3.4Треугольник
3,7Треугольник
3,7Треугольник
4.1Треугольник
4.3Треугольник
5Круг
2,7Круг
2,9Круг
3.3Круг
4.1Круг
3,9Круг

Шаг 2 — сортировка списка

Теперь у нас есть список расстояний до всех точек на поле. Осталось только отсортировать по возрастанию.

2.7 Круг
2.9 Круг
3.3 Круг
3.4 Треугольник

Шаг 3 — выберите К

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

Итак, если мы возьмем K = 4, выбранная точка будет иметь вид кругов. Потому что первые 3 элемента — это круги, и только один из них — треугольник. Важное примечание — может быть ситуация, когда у вас есть одинаковое количество из каждой категории. Вот почему лучше использовать странный Значение К (3, 7, 9, …).

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

Как работать с нечисловыми значениями?

Может быть ситуация, когда у вас не 2 измерения, а 10. И некоторые из них не числа вообще. Это могут быть категории, такие как форма («квадрат», «круглый», …) и т. д.

В этом случае мы можем представить его числами 0 и 1. Итак, если параметр имеет 2 возможных значения («квадрат», «круглый»).
Мы заменим его на 2 параметра — «площадь«, «круглый«
Итак, если элемент имеет тип «квадрат», он будет иметь значения (1, 0).
И если элемент типа «круглый», он будет иметь значения (0, 1).

Нормализация

Если мы работаем с несколькими измерениями, которые имеют разные диапазоны, нам необходимо применить регуляризацию. Например, одно измерение имеет диапазон 0-1. Его влияние на результаты будет крайне мало по сравнению с тем, который имеет диапазон (0-255). И это неправильно.

Алгоритм очень прост.

  1. Выберите измерение с наименьшим диапазоном (0–1 измерение_A)
  2. Прокрутите все остальные измерения и измените их значение.

измерение_B_значение / (измерение_B_диапазон / измерение_A_диапазон)

Таким образом, если размер B имеет диапазон от 0 до 200, он в 200 раз больше малого диапазона измерения A. Таким образом, все значения для измерения B должны быть разделены на 200. Если значение было 100, оно станет равным 0,5.
То же самое для всех других размеров.

Хотите создавать крутые вещи?

Посмотрите мой курс — Взлом JavaScript Карьера.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *