Рубрики
Без рубрики

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

Описание одного из простейших алгоритмов классификации. Это помогло мне начать работу с машинным обучением.

Автор оригинала: Alex Polymath.

Здравствуйте, меня зовут Алекс. И эта статья посвящена алгоритму KNN. Прошло много времени с тех пор, как я впервые встретил термин “машинное обучение”. Для меня, как разработчика переднего плана, всегда было трудно понять это. Есть так много вещей, таких как контролируемое, неконтролируемое, обучение с подкреплением . Сотни типов алгоритмов и нейронных сетей.

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

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

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

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

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

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

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

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

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

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

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

высокий звук

Треугольник 3.4
Треугольник 3.7
Треугольник 3.7
Треугольник 4.1
Треугольник 4.3
Круг 5.0
Круг 2.7
Круг 2.9
Круг 3.3
Круг 4.1
Круг 3.9

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

Теперь у нас есть список расстояний до всех точек на поле. Все, что осталось сделать, – это просто отсортировать его по возрастанию.

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

Шаг 3 – выберите K

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

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

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

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

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

В этом случае мы можем представить его числами 0 и 1. Итак, если параметр имеет 2 возможных значения (“квадрат”, “круглый”). Мы заменим его 2 параметрами – ” square “, ” round ” Поэтому, если элемент типа “square”, он будет иметь значения (1, 0). И если элемент типа “round”, он будет иметь значения (0, 1).

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

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

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

  1. Выберите размер с наименьшим диапазоном (0-1 dimension_A)
  2. Пройдите через все другие измерения и измените их значение

dimension_B_value/(dimension_B_range/dimension_A_range)

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

Хочешь строить крутые вещи?

Проверьте мой курс – Взлом карьеры JavaScript . https://www.udemy.com/javascript-career-jump-start/