В каких случаях лучше использовать дерево решений, а в других случаях - KNN?
Зачем использовать один из них в определенных случаях? А другие в разных случаях? (Глядя на его функциональность, а не на алгоритм)
У кого-нибудь есть объяснения или ссылки по этому поводу?
Ответы:
Они служат разным целям.
KNN не контролируется, дерево решений (DT) контролируется. ( KNN - контролируемое обучение, в то время как K-means не контролируется, я думаю, что этот ответ вызывает некоторую путаницу. ) KNN используется для кластеризации, DT - для классификации. ( Оба используются для классификации. )
KNN определяет окрестности, поэтому должна быть метрика расстояния. Это подразумевает, что все функции должны быть числовыми. На метрики расстояния могут влиять изменяющиеся масштабы между атрибутами, а также размерное пространство.
DT, с другой стороны, предсказывает класс для данного входного вектора. Атрибуты могут быть числовыми или номинальными.
Итак, если вы хотите найти похожие примеры, вы можете использовать KNN. Если вы хотите классифицировать примеры, вы можете использовать DT.
источник
knn
иk-means
это разные алгоритмы, и этот ответ, к сожалению (и ошибочно) пропускает эти две процедуры.knn
не контролируется и не используется для кластеризации! Смотрите Q: Diff kNN и kMeanКлассификаторы, такие как дерево решений, байесовский метод обратного распространения, машина опорных векторов, подпадают под категорию «усердных учеников» , потому что они сначала строят модель классификации на обучающем наборе данных, прежде чем смогут на самом деле классифицировать [невидимое] наблюдение из набора тестовых данных . Изученная модель теперь «жаждет» (читай голодных) классифицировать ранее невидимые наблюдения, отсюда и название.
Однако классификатор на основе KNN не создает никакой модели классификации. Он напрямую учится на учебных примерах (наблюдениях). Он начинает обработку данных только после того, как ему дано тестовое наблюдение для классификации. Таким образом, KNN подпадает под категорию «Ленивый ученик» подходов.
На основании вышеуказанных фундаментальных различий можно сделать следующие выводы:
Поскольку KNN выполняет обучение на месте, он требует частых поисков в базе данных, следовательно, может быть вычислительно дорогим. Классификатор дерева решений не требует таких поисков, поскольку имеет готовую модель классификации в памяти.
Так как KNN выполняет обучение на основе экземпляров, хорошо настроенный K может моделировать сложные пространства решений, имеющие произвольно сложные границы решений, которые нелегко моделируются другими «нетерпеливыми» учащимися, такими как деревья решений.
«Стремительные» ученики работают партиями, моделируя одну группу тренировочных наблюдений за раз. Таким образом, они не подходят для дополнительного обучения. Но KNN естественным образом поддерживает инкрементальное обучение (потоки данных), поскольку он обучается на основе экземпляров.
Кроме того, классификатор KNN дает частоту ошибок теста ближе к таковой у байесовского классификатора (золотой стандарт). Как указано в ISLR :
источник
Из машинного обучения Python Себастьяна Рашки :
Дерево решений, однако, может быстро классифицировать новые примеры. Вы просто запускаете серию булевых сравнений.
источник
Я бы добавил, что деревья решений могут использоваться как для задач классификации, так и для задач регрессии. DT, с другой стороны, предсказывает, что класс в принятом ответе будет более конкретным, описывая деревья классификации, которые технически являются подтипом общей концепции DT. Одна ссылка (игнорируя нижние слои, которые обсуждают конкретные реализации):
отсюда: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees
источник