Дерево решений против KNN

15

В каких случаях лучше использовать дерево решений, а в других случаях - KNN?

Зачем использовать один из них в определенных случаях? А другие в разных случаях? (Глядя на его функциональность, а не на алгоритм)

У кого-нибудь есть объяснения или ссылки по этому поводу?

gchavez1
источник
2
КНН НЕ является без присмотра. Возможно, ответ был думать о К-средних?
2
Обучение дерева решений также не остается без присмотра. en.wikipedia.org/wiki/Supervised_learning .
Валентина

Ответы:

9

Они служат разным целям.

KNN не контролируется, дерево решений (DT) контролируется. ( KNN - контролируемое обучение, в то время как K-means не контролируется, я думаю, что этот ответ вызывает некоторую путаницу. ) KNN используется для кластеризации, DT - для классификации. ( Оба используются для классификации. )

KNN определяет окрестности, поэтому должна быть метрика расстояния. Это подразумевает, что все функции должны быть числовыми. На метрики расстояния могут влиять изменяющиеся масштабы между атрибутами, а также размерное пространство.

DT, с другой стороны, предсказывает класс для данного входного вектора. Атрибуты могут быть числовыми или номинальными.

Итак, если вы хотите найти похожие примеры, вы можете использовать KNN. Если вы хотите классифицировать примеры, вы можете использовать DT.

Даршан Джайн
источник
Уточнение: кластеризация, но один кластер размера k вокруг заданного входного вектора. Это не обязательно верно, что все функции должны быть числовыми. Например, вы можете использовать сходство с Jaccard, чтобы определить расстояние, где объекты являются номинальными.
10
На самом деле, они оба контролируются. Контролируемый означает, что учащийся имеет доступ к маркированному обучающему набору. Неуправляемые алгоритмы выполняют такие функции, как кластеризация, а не прогнозирование меток.
Джордан А
1
Вы также можете классифицировать с KNN, основываясь на большинстве ваших соседей по K
Екатерина Кокатюхха
3
-1 knnи k-meansэто разные алгоритмы, и этот ответ, к сожалению (и ошибочно) пропускает эти две процедуры. knnне контролируется и не используется для кластеризации! Смотрите Q: Diff kNN и kMean
SebNag
@SebNag, справедливо ли сказать, что раздел sci-kit learn «Необслуживаемые ближайшие соседи» на самом деле просто говорит о скрытых k-средних? scikit-learn.org/stable/modules/neighbors.html Похоже, что этот раздел использует knn, но только с некоторой мерой расстояния вместо этого, чтобы определить кластеры без знания меток ... т.е. это звучит как k-means.
Фрикстер
8

Классификаторы, такие как дерево решений, байесовский метод обратного распространения, машина опорных векторов, подпадают под категорию «усердных учеников» , потому что они сначала строят модель классификации на обучающем наборе данных, прежде чем смогут на самом деле классифицировать [невидимое] наблюдение из набора тестовых данных . Изученная модель теперь «жаждет» (читай голодных) классифицировать ранее невидимые наблюдения, отсюда и название.


Однако классификатор на основе KNN не создает никакой модели классификации. Он напрямую учится на учебных примерах (наблюдениях). Он начинает обработку данных только после того, как ему дано тестовое наблюдение для классификации. Таким образом, KNN подпадает под категорию «Ленивый ученик» подходов.

На основании вышеуказанных фундаментальных различий можно сделать следующие выводы:

  1. Поскольку KNN выполняет обучение на месте, он требует частых поисков в базе данных, следовательно, может быть вычислительно дорогим. Классификатор дерева решений не требует таких поисков, поскольку имеет готовую модель классификации в памяти.

  2. Так как KNN выполняет обучение на основе экземпляров, хорошо настроенный K может моделировать сложные пространства решений, имеющие произвольно сложные границы решений, которые нелегко моделируются другими «нетерпеливыми» учащимися, такими как деревья решений.

  3. «Стремительные» ученики работают партиями, моделируя одну группу тренировочных наблюдений за раз. Таким образом, они не подходят для дополнительного обучения. Но KNN естественным образом поддерживает инкрементальное обучение (потоки данных), поскольку он обучается на основе экземпляров.

  4. Кроме того, классификатор KNN дает частоту ошибок теста ближе к таковой у байесовского классификатора (золотой стандарт). Как указано в ISLR :

Коэффициент ошибок Байеса аналогичен неприводимой ошибке

spkakkar
источник
4

Из машинного обучения Python Себастьяна Рашки :

Основное преимущество такого подхода, основанного на памяти [KNN], заключается в том, что классификатор немедленно адаптируется, когда мы собираем новые обучающие данные. Однако недостатком является то, что вычислительная сложность для классификации новых выборок растет линейно с количеством выборок в обучающем наборе данных в худшем случае - если только набор данных не имеет очень мало измерений (признаков) и алгоритм не был реализован с использованием эффективных данных структуры, такие как KD-деревья. JH Friedman, JL Bentley и RA Finkel. Алгоритм поиска наилучших совпадений в логарифмическом ожидаемом времени. Транзакции ACM по математическому программному обеспечению (TOMS), 3 (3): 209–226, 1977. Кроме того, мы не можем отбросить обучающие образцы, так как не требуется никакого этапа обучения. Таким образом, пространство хранения может стать проблемой, если мы работаем с большими наборами данных.

Дерево решений, однако, может быстро классифицировать новые примеры. Вы просто запускаете серию булевых сравнений.

Рассел Ричи
источник
2

Я бы добавил, что деревья решений могут использоваться как для задач классификации, так и для задач регрессии. DT, с другой стороны, предсказывает, что класс в принятом ответе будет более конкретным, описывая деревья классификации, которые технически являются подтипом общей концепции DT. Одна ссылка (игнорируя нижние слои, которые обсуждают конкретные реализации):
типы деревьев решений отсюда: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees

Farmi
источник