МЕТОД K-БЛИЖАЙШИХ СОСЕДЕЙ (K-NEAREST NEIGHBOR) Метод решения задачи классификации, который относит объекты к классу, которому принадлежит большинство из k его ближайших соседей в многомерном пространстве признаков. Это один из простейших алгоритмов обучения классификационных моделей. Число k – это количество соседних объектов в пространстве признаков, которое сравнивается с классифицируемым объектом. МЕТОД K-БЛИЖАЙШИХ СОСЕДЕЙ АЛГОРИТМ Для классификации каждого из объектов тестовой выборки необходимо последовательно выполнить следующие операции: Вычислить расстояние до каждого из объектов обучающей выборки, Отобрать k объектов обучающей выборки, расстояние до которых минимально, Класс классифицируемого объекта — это класс, наиболее часто встречающийся среди k ближайших соседей. ЭВКЛИДОВО РАССТОЯНИЕ Геометрическое расстояние в многомерном пространстве признаков и вычисляется следующим образом: 𝑑𝑎𝑏 = где 𝑛 𝑖=1 𝑥𝑎𝑖 − 𝑥𝑏𝑖 2 , a и b – точки в n-мерном пространстве, i – порядковый номер признака, 𝑥𝑎𝑖 и 𝑥𝑏𝑖 - координаты точек a и b по признаку i. Для QSAR моделей 𝒙𝒂𝒊 и 𝒙𝒃𝒊 - значения i-того дескриптора для молекул a и b. НОРМАЛИЗАЦИЯ Минимаксная нормализация: 𝑥 − 𝑥𝑚𝑖𝑛 ∗ 𝑥 = 𝑥𝑚𝑎𝑥 − 𝑥𝑚𝑖𝑛 Нормализация с помощью стандартного отклонения: 𝑥 − 𝑥𝑚𝑒𝑎𝑛 ∗ 𝑥 = 𝜎𝑥 где 𝜎𝑥 - стандартное отклонение. ПРОСТОЕ НЕВЗВЕШЕННОЕ ГОЛОСОВАНИЕ ПРОСТОЕ НЕВЗВЕШЕННОЕ ГОЛОСОВАНИЕ Класс, который наберет наибольшее количество голосов, присваивается новому элементу. 𝑘 𝑖 𝑦𝑎 𝑎, 𝑋, 𝑘 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑦∈𝑌 𝑦𝑎 = 𝑦 𝑖=1 где a – новый объект (соединение), X – обучающая выборка, y – класс, Y – множество классов, 𝑖 𝑦𝑎 – класс i-того соседа а, k – количество соседей. ВЗВЕШЕННОЕ ГОЛОСОВАНИЕ ВЗВЕШЕННОЕ ГОЛОСОВАНИЕ В данном случае учитывается также и расстояние до нового объекта. 𝑘 1 𝑖 𝑦𝑎 𝑎, 𝑋, 𝑘 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑦∈𝑌 𝑦 𝑎 =𝑦 2 𝑑 𝑎, 𝑏 𝑖=1 где a – новый объект (соединение), X – обучающая выборка, y – класс, Y – множество классов, 𝑖 𝑦𝑎 – класс i-того соседа а, 𝑑 𝑎, 𝑏 – расстояние от известного объекта b до новой a, k – количество соседей. ПРИМЕНЕНИЕ kNN ДЛЯ РЕГРЕССИОННЫХ ЗАДАЧ 𝑦𝑎 = 𝑖 2 𝑛 𝑦 𝑖=1 𝑎 𝑑 𝑎, 𝑏 𝑛 2 𝑎, 𝑏 𝑑 𝑖=1 где 𝑦𝑎 - свойство нового объекта а, 𝑖 𝑦𝑎 – свойство i-того соседа а, 𝑑 𝑎, 𝑏 – расстояние от известного объекта b до новой a. ПРИМЕР: ИРИСЫ ФИШЕРА 150 цветков трех классов: Iris Setosa Iris Versicolour Iris Virginica Два параметра: длина чашелистика и длина лепестка. Два новых цветка со следующими значениями длины чашелистика и лепестка: 5,3 и 1,6 (цветок 1), 6,1 и 4,8 (цветок 2). ИРИСЫ ФИШЕРА: ДИАГРАММА РАЗМЕЩЕНИЯ КЛАССОВ ИРИСЫ ФИШЕРА: ПРОСТОЕ НЕВЗВЕШЕННОЕ ГОЛОСОВАНИЕ Цветок 1. Зададим k=3. Ближайшие соседи: A (5,3; 1,5), В(5,2; 1,5) и С(5,2; 1,5). 𝑑 цветок 1, 𝐴 = 5,3 − 5,3 2 + 1,6 − 1,5 2 = 0,1 𝑑 цветок 1, 𝐵 = 5,3 − 5,2 2 + 1,6 − 1,5 2 = 0,14 𝑑 цветок 1, С = 5,3 − 5,2 2 + 1,6 − 1,5 2 = 0,14 Объект Чашелистик Лепесток Расстояние Класс Цветок 1 5,3 1,6 - - A 5,3 1,5 0,1 Iris Setosa B 5,2 1,5 0,14 Iris Setosa C 5,2 1,5 0,14 Iris Setosa Класс цветка 1: Iris Setosa ИРИСЫ ФИШЕРА: ПРОСТОЕ НЕВЗВЕШЕННОЕ ГОЛОСОВАНИЕ Цветок 2. Зададим k=3 и предположим, что длина лепестка вдвое важнее длины чашелистика. Ближайшие соседи: A(6,1; 4,7), B(6; 4,8), C(6,2 4,8) 𝑑 цветок 1, 𝐴 = 6,1 − 6,1 2 +2 4,8 − 4,7 2 = 0,14 𝑑 цветок 1, 𝐵 = 6,1 − 6 2 +2 4,8 − 4,8 2 = 0,1 𝑑 цветок 1, 𝐶 = 6,1 − 6,2 2 +2 4,8 − 4,8 2 = 0,1 Объект Чашелистик Лепесток Расстояние Класс Цветок 2 6,1 4,8 - - A 6,1 4,7 0,14 Iris Versicolour B 6 4,8 0,1 Iris Virginica C 6,2 4,8 0,1 Iris Virginica Класс цветка 2: Iris Virginica ИРИСЫ ФИШЕРА: ВЗВЕШЕННОЕ ГОЛОСОВАНИЕ 𝑦𝑎 цветок2, 𝑋, 𝑘 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑦∈𝑌 1 1 + 𝐼𝑟𝑖𝑠 𝑉𝑖𝑟𝑔𝑖𝑛𝑖𝑐𝑎, 2 2 0,1 0,1 1 0,2 2 𝐼𝑟𝑖𝑠 𝑉𝑒𝑟𝑠𝑖𝑐𝑜𝑙𝑜𝑢𝑟 = 𝑎𝑟𝑔𝑚𝑎𝑥𝑦∈𝑌 200 ∙ 𝐼𝑟𝑖𝑠 𝑉𝑖𝑟𝑔𝑖𝑛𝑖𝑐𝑎, 50 ∙ 𝐼𝑟𝑖𝑠 𝑉𝑒𝑟𝑠𝑖𝑐𝑜𝑙𝑜𝑟 = 𝐼𝑟𝑖𝑠 𝑉𝑖𝑟𝑔𝑖𝑛𝑖𝑐𝑎 Класс цветка 2: Iris Virginica ДОСТОИНСТВА МЕТОДА kNN Программная реализация алгоритма относительно проста. Возможность модификации алгоритма. Алгоритм устойчив к аномальным выбросам. Возможность интерпретации результатов работы алгоритма. НЕДОСТАТКИ МЕТОДА kNN Набор данных, используемый для алгоритма, должен быть репрезентативным. Необходимость хранить обучающую выборку целиком. В простейших случаях метрические алгоритмы имеют крайне бедный набор параметров, что исключает возможность настройки алгоритма по данным. Затраты в производительности велики, поскольку нам необходимо вычислить расстояния между каждым экземпляром и всеми пробными экземплярами. ПРИМЕНЕНИЕ МЕТОДА kNN Распознавание текста, Сельское хозяйство, Финансы, Медицина, Обнаружение мошенничества, QSAR. ПОСТРОЕНИЕ МОДЕЛИ В R preProc <- preProcess(x, method=c("scale", "center")) x <- predict(preProc, x) set.seed(42) cv <- createFolds(y, 5, returnTrain=TRUE) trControl <- trainControl(method="LGOCV", index=cv, savePredictions=TRUE, preProcOptions=NULL) knnGrid <- data.frame(k=seq(1,20,2)) m.knn <- train(x, y, method="knn", trControl=trControl, tuneGrid=knnGrid) ВЫБОРКА ПО РАСТВОРИМОСТИ РЕЗУЛЬТАТЫ CROSS-VALIDATION TEST SET 1.2 1.4 1 1.2 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 GBM kNN PLS RMSE RF R2 SVM 0 GBM kNN PLS RMSE RF R2 SVM 22 ВЫБОРКА ПО МУТАГЕННОСТИ РЕЗУЛЬТАТЫ TEST SET:ACCURACY CROSS-VALIDATION 0.8 0.74 0.7 0.73 0.6 0.72 0.5 0.71 0.4 0.7 0.3 0.69 0.2 0.68 0.1 0.67 0 kNN RF Accuracy SVM Kappa 0.66 0.65 kNN RF SVM