Всем привет!
Наконец я добралась до машинного обучения. Сегодня поговорим о классификации методом ближайших соседей. Люди, знакомые с машинным обучением (machine learning), чаще называют этот метод kNN алгоритмом (от английского k-nearest neighbors). Надеюсь, простота этого классификатора позволит мне познакомить вас с идеей машинного обучения.
Целью классификации в машинном обучении является отнесение объекта к одной из заранее определённых групп. Вот вам простой пример. Человек обращается за кредитом в банк. Имеется два класса людей: люди, способные вернуть кредит; и люди, неспособные вернуть кредит. Задача банка — определить к какому классу относится человек.
Давайте рассмотрим эту задачу пободробнее. Объекты каждого класса можно описать двумя простейшими признаками. Например, возрастом и заработной платой. Конечно, банк уже сталкивался с людьми каждой группы. Поэтому, их признаки (возраст и заработную плату) можно нанести на график:
Здесь, синие треугольники описывают людей, вернувших кредит банку, а красные квадратики — люди не вернувшие кредит. Предположим, что в банк за кредитом обращается человек в возрасте 30 лет с заработной платой 25 тысяч рублей (жёлтый кружок):
К какому классу относится этот человек решит kNN алгоритм. Он основан на поиске ближайших соседей среди уже классифицированных данных. Для этого, сначала, вычисляется расстояние от точки, класс которой мы хотим определить, до всех остальных, уже классифицированных, точек:
На основании вычисленных расстояний определяются k ближайших соседей. Как вы понимаете, k в данном случае обозначает количество соседей, класс которых нас интересует. Рассмотрим случай, когда k=3. Получаем, что два ближайших соседа характеризуют людей, не вернувших кредит, и один сосед описывает человека, вернувшего кредит:
В таком случае, банк принимает решение не одобрять кредит обратившемуся человеку. Конечно, на практике метод ближайших соседей является мало эффективным из-за своей простоты и низкой скорости классификации. Но всё же, думаю, что это хороший способ начать знакомство с machine learning алгоритмами. Если вам интересны мои статьи, то не забудьте подписаться на мой телеграм, нас там уже 26 человек :).