Самый простой алгоритм для начала работы с машинным обучением
Привет меня зовут Алекс. И эта статья об алгоритме KNN. Прошло много времени с тех пор, как я впервые встретил термин «машинное обучение». Мне, как фронтенд-разработчику, всегда было сложно это понять. Есть так много вещей, как контролируемое, неконтролируемое, обучение с подкреплением. Сотни типов алгоритмов и нейронных сетей.
Поэтому я искал некоторые мягкое начало. Алгоритм, который легко понять с базовым уровнем математики.
Как это работает?
Прежде всего. Давайте определим простую задачу, чтобы было легче понять дальнейшее объяснение.
У нас есть поле. Допустим, в одной части этого поля в основном круги. А с другой стороны в основном треугольники. Все они имеют координаты (X, Y). Не квантовая физика, ха.
К какому типу относится точка с выбранными координатами (x, y)?
Шаг 1 — давайте измерим расстояние
Очевидно, что ближе указать на группу круги, тем выше вероятность, что это также и круг. То же самое для треугольников. Итак, все, что нам нужно понять — это** насколько далеко** эта точка от каждой из этих групп.
Дело в том, что мы не можем реально измерить расстояние от точки до целой группы.
Итак, мы рассчитаем расстояние из выбран точка к все остальные элементы на поле.
Формула евклидова расстояния для двумерного пространства
Расстояние | Тип |
---|---|
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). И это неправильно.
Алгоритм очень прост.
- Выберите измерение с наименьшим диапазоном (0–1 измерение_A)
- Прокрутите все остальные измерения и измените их значение.
измерение_B_значение / (измерение_B_диапазон / измерение_A_диапазон)
Таким образом, если размер B имеет диапазон от 0 до 200, он в 200 раз больше малого диапазона измерения A. Таким образом, все значения для измерения B должны быть разделены на 200. Если значение было 100, оно станет равным 0,5.
То же самое для всех других размеров.