Изменения

Перейти к: навигация, поиск
Нет описания правки
<tex>\rho(u,x_{1; u}) \leq \rho(u,x_{2; u}) \leq \cdots \leq \rho(u,x_{m; u})</tex>,
где через <tex>x_{i; u}</tex> обозначается тот объект обучающей выборки, который является <tex>i</tex>-м соседом объекта <tex>u</tex>. Аналогичное обозначение введём и для ответа на <tex>i</tex>-м соседе: <tex>y_{i; u}</tex>. Таким образом, произвольный объект <tex>u</tex> порождает свою перенумерацию выборки. В наиболее общем виде алгоритм ближайших соседей есть:
<tex>a(u) = \mathrm{arg}\max_{y\in Y} \sum_{i=1}^m \bigl[ x_y_{i; u}=y \bigr] w(i,u)</tex>,
где <tex>w(i,u)</tex> {{---}} заданная весовая функция, которая оценивает степень важности <tex>i</tex>-го соседа для классификации объекта <tex>u</tex>. Естественно полагать, что эта функция неотрицательна и не возрастает по <tex>i</tex> (поскольку чем дальше объект, тем меньший вклад он должен вносить в пользу своего класса).
Сравним два этих метода. Сперва запишем классификаторы, полученные при использовании этих методов, в явном виде:
Фиксированной ширины: <tex>a_h = a(u, X^m, \boldsymbol{h}, K) = \mathrm{arg}\max_{y\in Y} \sum_{i=1}^m \bigl[ x_y_{i; u}=y \bigr] K\biggl(\frac{\rho(u,x_{i; u})}{h}\biggr)</tex>
Переменной ширины: <tex>a_k = a(u, X^m, \boldsymbol{k}, K) = \mathrm{arg}\max_{y\in Y} \sum_{i=1}^m \bigl[ x_y_{i; u}=y \bigr] K\biggl(\frac{\rho(u,x_{i; u})}{\rho(u,x_{k+1; u})}\biggr)</tex>
<tex>a_h</tex> не будет учитывать соседей на расстояние больше чем h, а всех остальных учтет в соответствии с функций ядра <tex>K</tex>.
== Пример использования (через scikit-learn) ==
Пусть <tex>X</tex>, <tex>y </tex> - нормированные значения признаков и соответствуйющие им классы.
* Делим данные на тренировочное и тестовое множество
17
правок

Навигация