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?
machine-learning
data-mining
decision-trees
gchavez1
sumber
sumber
Jawaban:
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.
sumber
knn
dank-means
algoritma yang berbeda dan jawaban ini sayangnya (dan keliru) melewatkan dua prosedur.knn
tidak tanpa pengawasan atau digunakan untuk pengelompokan! Lihat Q: Diff kNN dan kMeanPengklasifikasi 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: -
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.
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.
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.
Selanjutnya, pengklasifikasi KNN memberikan tingkat kesalahan pengujian lebih dekat dengan klasifikasi Bayesian (standar emas). Seperti dikutip dalam ISLR :
sumber
Dari Pembelajaran Mesin Python Sebastian Raschka :
Pohon keputusan, bagaimanapun, dapat dengan cepat mengklasifikasikan contoh-contoh baru. Anda hanya menjalankan serangkaian perbandingan boolean.
sumber
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):
Dari sini: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regress-trees
sumber