2012-04-16 4 views
2

Я применил алгоритм KNN в Matlab для классификации рукописных цифр. цифры начинаются в векторном формате изначально 8 * 8 и растягиваются с образованием вектора 1 * 64. Поэтому каждый раз, когда я сравниваю первую цифру со всем остальным набором данных (что довольно велико), то второй с остальной частью и т. Д. И т. Д. И т. Д. Теперь мой вопрос заключается в том, что не один соседи лучший выбор всегда? Поскольку я использую Euclidean Distance, (я выбираю тот, который ближе), почему я должен выбрать 2 или 3 других соседа, так как я получил ближайшую цифру?Число алгоритмов KNN соседей

Thanks

+0

Допустим, у вас есть один 7, который ошибочно написана и выглядит точно так же, как 1 вы проверяете в настоящее время. Вы получаете неправильный результат. Теперь, насколько вероятно, что среди 5 лучших матчей больше 7 с, чем 1? – svinja

+0

Ребята, это нормально, чтобы получить 90,21% успеха? на наборе данных из 1593 цифр? –

+0

@TestTest Я не специалист по распознаванию изображений, я обычно использую ML для других целей, но 90,2% звучат довольно хорошо для меня. – amit

ответ

1

Вы должны принять во внимание шум. Предположим, что некоторые из ваших классифицированных примеров были классифицированы неправильно, или, может быть, один из них странно очень близок к другим примерам - это разные, но на самом деле это всего лишь «глюк». В этих случаях - классификация в соответствии с этим из примера дорожки может привести к ошибке.

Из личного опыта, обычно, лучшие результаты достигаются для k = 3/5/7, но зависит от экземпляра.

Если вы хотите достичь наилучшей производительности - вы должны использовать верхнюю часть cross validation, которая выбрала оптимальный k для вашего конкретного экземпляра.

Кроме того, он является общим для использования только нечетное число, как k для KNN, чтобы избежать «черпает»

+0

Ребята, это нормально, чтобы получить 90,21% успеха? на наборе данных из 1593 цифр? –