Pohon keputusan vs. KNN

15

Dalam kasus apa lebih baik menggunakan pohon Keputusan dan kasus lainnya KNN?

Mengapa menggunakan salah satunya dalam kasus tertentu? Dan yang lainnya dalam kasus yang berbeda? (Dengan melihat fungsinya, bukan pada algoritma)

Adakah yang punya penjelasan atau referensi tentang ini?

gchavez1
sumber
2
KNN TIDAK tanpa pengawasan. Mungkin jawabannya memikirkan k-means?
2
Pembelajaran pohon keputusan juga tidak diawasi. en.wikipedia.org/wiki/Supervised_learning .
Valentas

Jawaban:

9

Mereka melayani tujuan yang berbeda.

KNN tidak diawasi, Decision Tree (DT) diawasi. ( KNN diawasi pembelajaran sementara K-means tidak diawasi, saya pikir jawaban ini menyebabkan kebingungan. ) KNN digunakan untuk pengelompokan, DT untuk klasifikasi. ( Keduanya digunakan untuk klasifikasi. )

KNN menentukan lingkungan, jadi harus ada metrik jarak. Ini menyiratkan bahwa semua fitur harus numerik. Metrik jarak dapat dipengaruhi oleh berbagai skala antara atribut dan juga ruang dimensi tinggi.

DT, di sisi lain, memprediksi kelas untuk vektor input yang diberikan. Atribut dapat berupa numerik atau nominal.

Jadi, jika Anda ingin menemukan contoh serupa Anda bisa menggunakan KNN. Jika Anda ingin mengklasifikasikan contoh, Anda bisa menggunakan DT.

Darshan Jain
sumber
Klarifikasi: Clustering, tetapi satu cluster berukuran k di sekitar vektor input yang diberikan. Belum tentu benar bahwa semua fitur harus numerik. Misalnya, Anda bisa menggunakan kesamaan Jaccard untuk menentukan jarak di mana fitur bersifat nominal.
10
Sebenarnya, keduanya diawasi. Dibimbing hanya berarti bahwa pelajar memiliki akses ke set pelatihan berlabel. Algoritma tanpa pengawasan melakukan hal-hal seperti pengelompokan, bukan prediksi label.
Jordan A
1
Anda juga dapat mengklasifikasikan dengan KNN berdasarkan persis pada sebagian besar tetangga K Anda
Jekaterina Kokatjuhha
3
-1 knndan k-meansalgoritma yang berbeda dan jawaban ini sayangnya (dan keliru) melewatkan dua prosedur. knntidak tanpa pengawasan atau digunakan untuk pengelompokan! Lihat Q: Diff kNN dan kMean
SebNag
@SebNag, apakah adil untuk mengatakan bahwa sci-kit mempelajari bagian "Tetangga terdekat tanpa pengawasan" benar-benar hanya berbicara tentang k-means dalam penyamaran? scikit-learn.org/stable/modules/neighbors.html Sepertinya bagian itu menggunakan knn tetapi hanya dengan ukuran jarak tertentu sebagai gantinya untuk menentukan cluster tanpa pengetahuan label .. yaitu ini terdengar seperti k-means.
Frikster
8

Pengklasifikasi seperti Decision Tree, Bayesian, Back-propagation, Support Vector Machine berada di bawah kategori "Eager Learners" , karena mereka pertama kali membangun model klasifikasi pada dataset pelatihan sebelum dapat benar-benar mengklasifikasikan pengamatan [tak terlihat] dari dataset tes . Model yang dipelajari sekarang "bersemangat" (baca lapar) untuk mengklasifikasikan pengamatan yang sebelumnya tidak terlihat, maka namanya.


Klasifikasi berbasis KNN, bagaimanapun, tidak membangun model klasifikasi apa pun. Secara langsung belajar dari contoh pelatihan (pengamatan). Itu mulai memproses data hanya setelah itu diberikan pengamatan tes untuk mengklasifikasikan. Dengan demikian, KNN berada di bawah kategori pendekatan "Pelajar Malas" .

Berdasarkan perbedaan mendasar di atas, kita dapat menyimpulkan sebagai berikut: -

  1. Karena KNN melakukan pembelajaran di tempat, itu membutuhkan pencarian basis data yang sering, oleh karena itu, bisa mahal secara komputasi. Decision Tree Classifier tidak memerlukan pencarian seperti itu karena memiliki model klasifikasi in-memory siap.

  2. Karena KNN melakukan pembelajaran berbasis contoh, K yang dapat disetel dapat memodelkan ruang keputusan yang rumit yang memiliki batas-batas keputusan yang rumit, yang tidak mudah dimodelkan oleh pelajar "yang bersemangat" seperti Decision Trees.

  3. Peserta didik "bersemangat" bekerja dalam kelompok, memodelkan satu kelompok pengamatan pelatihan sekaligus. Jadi mereka tidak cocok untuk pembelajaran tambahan. Tetapi KNN secara alami mendukung pembelajaran inkremental (aliran data) karena ia adalah pembelajar berbasis instance.

  4. Selanjutnya, pengklasifikasi KNN memberikan tingkat kesalahan pengujian lebih dekat dengan klasifikasi Bayesian (standar emas). Seperti dikutip dalam ISLR :

Tingkat kesalahan Bayes analog dengan kesalahan yang tidak dapat dikurangi

spkakkar
sumber
4

Dari Pembelajaran Mesin Python Sebastian Raschka :

Keuntungan utama dari pendekatan berbasis memori [KNN] adalah bahwa classifier segera beradaptasi saat kami mengumpulkan data pelatihan baru. Namun, downside adalah bahwa kompleksitas komputasi untuk mengklasifikasikan sampel baru tumbuh secara linear dengan jumlah sampel dalam dataset pelatihan dalam skenario kasus terburuk — kecuali jika dataset memiliki dimensi (fitur) yang sangat sedikit dan algoritme tersebut telah diimplementasikan menggunakan data yang efisien. struktur seperti pohon-pohon KD. JH Friedman, JL Bentley, dan RA Finkel. Algoritma untuk menemukan kecocokan terbaik dalam waktu yang diperkirakan logaritmik. Transaksi ACM pada Perangkat Lunak Matematika (TOM), 3 (3): 209–226, 1977. Selain itu, kami tidak dapat membuang sampel pelatihan karena tidak ada langkah pelatihan yang terlibat. Dengan demikian, ruang penyimpanan bisa menjadi tantangan jika kita bekerja dengan dataset besar.

Pohon keputusan, bagaimanapun, dapat dengan cepat mengklasifikasikan contoh-contoh baru. Anda hanya menjalankan serangkaian perbandingan boolean.

Russell Richie
sumber
2

Saya ingin menambahkan bahwa pohon keputusan dapat digunakan untuk tugas klasifikasi dan regresi. DT di sisi lain memprediksi kelas dalam jawaban yang diterima akan lebih spesifik dengan menjelaskan pohon Klasifikasi yang secara teknis merupakan subtipe dari konsep DT generik. Satu referensi (mengabaikan lapisan bawah yang membahas implementasi spesifik):
jenis pohon keputusan Dari sini: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regress-trees

petani
sumber