В чем разница между классификаторами ANN, SVM и KNN? - PullRequest
2 голосов
/ 06 сентября 2011

Я знаю, что это очень общий вопрос без каких-либо подробностей о моем реальном проекте, но мой вопрос:

Я занимаюсь классификацией изображений с помощью дистанционного зондирования. Я использую объектно-ориентированный метод: сначала я сегментировал изображение по разным областям, а затем извлекаю элементы из таких областей, как цвет, форма и текстура. Количество всех объектов в регионе может быть 30, и обычно всего 2000 регионов, и я выберу 5 классов с 15 выборками для каждого класса.

В итоге:

  • Пример данных 1530
  • Данные испытаний 197530

Как выбрать правильный классификатор? Если есть 3 классификатора (ANN, SVM и KNN), что я должен выбрать для лучшей классификации?

Ответы [ 3 ]

5 голосов
/ 19 ноября 2015

KNN - это самый базовый алгоритм машинного обучения, который можно параметризировать и реализовывать, но, как на него ссылается @etov, вероятно, будет опережать SVM из-за небольших объемов данных обучения.Было также отмечено, что ANN ограничены недостаточными данными обучения.Тем не менее, KNN делает наименьшее количество предположений относительно ваших данных, за исключением того, что точные обучающие данные должны образовывать относительно дискретные кластеры.ANN и SVM общеизвестно трудны для параметризации, особенно если вы хотите повторить процесс с использованием нескольких наборов данных и полагаться на определенные предположения, такие как то, что ваши данные линейно разделимы (SVM).

Я бы также рекомендовал RandomАлгоритм лесов, поскольку он прост в реализации и относительно нечувствителен к размеру обучающих данных, но я бы не советовал использовать очень малые размеры обучающих данных.

Модуль scikit-learn содержит эти алгоритмы и способен справляться с большимиразмеры тренировочных данных, чтобы вы могли увеличить количество выборок обучающих данных.лучший способ узнать наверняка - это исследовать их самостоятельно, как предлагает @ etov

2 голосов
/ 08 сентября 2011

Если ваши «выборочные данные» представляют собой набор поездов, они кажутся очень маленькими. Сначала я бы предложил использовать более 15 примеров на класс.

Как сказано в комментариях, лучше всего сопоставить алгоритм с проблемой, поэтому вы можете просто проверить, какой алгоритм работает лучше. Но для начала я бы предложил SVM: он работает лучше, чем KNN с небольшими поездами, и, как правило, его легче обучать, чем ANN, так как вариантов меньше.

0 голосов
/ 15 марта 2019

Посмотрите на карту ума ниже

enter image description here

KNN: KNN работает хорошо, когда размер выборки <100K записей, длянетекстовые данные.Если точность не высока, немедленно перейдите к <a href="https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html" rel="nofollow noreferrer"> SVC (Классификатор опорных векторов SVM)

SVM: Когда размер выборки> 100K записей, перейдите к SVM с SGDClassifier .

ANN: ANN эволюционировал со временем, и они мощные.Вы можете использовать как ANN, так и SVM в комбинации для классификации изображений

Более подробная информация доступна @ semanticscholar.org

ANN_SVM

...