Saya mengalami kesulitan memahami kutukan dimensi. Secara khusus, saya menemukan itu saat melakukan scikit-learn
tutorial dengan python. Bisakah seseorang tolong jelaskan yang di bawah ini dengan cara yang lebih sederhana? Maaf saya telah mencoba untuk memahami untuk waktu yang paling lama dan tidak dapat memahami bagaimana mereka muncul dengan perhitungan untuk sejumlah contoh pelatihan untuk mencapai penduga KNN yang efisien?
Berikut penjelasannya:
Agar estimator menjadi efektif, Anda perlu jarak antara titik tetangga menjadi kurang dari beberapa nilai d, yang tergantung pada masalah. Dalam satu dimensi, ini membutuhkan rata-rata n ~ 1 / d poin. Dalam konteks contoh KNN di atas, jika data dijelaskan oleh hanya satu fitur dengan nilai mulai dari 0 hingga 1 dan dengan n pengamatan pelatihan, maka data baru tidak akan lebih jauh dari 1 / n. Oleh karena itu, aturan keputusan tetangga terdekat akan menjadi efisien segera setelah 1 / n kecil dibandingkan dengan skala variasi fitur antara kelas.
Jika jumlah fitur p, Anda sekarang memerlukan n ~ 1 / d ^ p poin. Katakanlah kita membutuhkan 10 poin dalam satu dimensi: Sekarang 10 ^ poin diperlukan dalam dimensi p untuk membuka ruang [0, 1]. Ketika p menjadi besar, jumlah poin pelatihan yang diperlukan untuk penduga yang baik tumbuh secara eksponensial.
EDIT: juga apakah tilde ( ~
) seharusnya mewakili perkiraan dalam contoh itu? atau operator python tilde?
sumber
Jawaban:
Menerjemahkan paragraf itu:
Biarkan ada serangkaian fitur yang menggambarkan titik data. Mungkin Anda sedang melihat cuaca. Seperangkat fitur itu mungkin mencakup hal-hal seperti suhu, kelembaban, waktu, dll. Jadi setiap titik data mungkin memiliki satu fitur (jika Anda hanya melihat suhu) atau mungkin memiliki 2 fitur (jika Anda melihat suhu dan kelembaban) dan sebagainya. Apa yang dikatakan paragraf ini adalah berdasarkan jumlah dimensi yang dimiliki data Anda (berapa banyak fitur yang dimilikinya), semakin sulit membuat estimator. Ini karena jika Anda hanya memiliki satu fitur data, atau data 1 dimensi, maka ketika Anda pergi ke grafik data ini, Anda mendapatkan grafik garis, dan membayangkan grafik garis antara katakanlah 0-50 derajat C, hanya dibutuhkan 50 titik acak sebelum setiap titik data sekitar 1 derajat dari titik data lainnya. Sekarang mari kita Pikirkan tentang 2 dimensi, berbicara tentang kelembaban dan suhu, sekarang lebih sulit untuk menemukan bahwa d sedemikian rupa sehingga semua titik berada dalam satuan "d" satu sama lain. Bayangkan suhu masih antara 0-50 tetapi sekarang kelembaban juga antara 0-100%. Berapa banyak poin acak yang diperlukan untuk mendapatkan semua poin dalam 1 atau 2 satu sama lain? Sekarang 100 * 50 atau ~ 5.000! Sekarang bayangkan 3 dimensi, dll. Anda mulai membutuhkan lebih banyak poin untuk memastikan bahwa setiap poin berada dalam d dari beberapa poin lainnya. Untuk membuat hidup Anda lebih mudah, coba anggap "d" adalah 1 dan lihat apa yang terjadi. Semoga itu bisa membantu! Berapa banyak poin acak yang diperlukan untuk mendapatkan semua poin dalam 1 atau 2 satu sama lain? Sekarang 100 * 50 atau ~ 5.000! Sekarang bayangkan 3 dimensi, dll. Anda mulai membutuhkan lebih banyak poin untuk memastikan bahwa setiap poin berada dalam d dari beberapa poin lainnya. Untuk membuat hidup Anda lebih mudah, coba anggap "d" adalah 1 dan lihat apa yang terjadi. Semoga itu bisa membantu! Berapa banyak poin acak yang diperlukan untuk mendapatkan semua poin dalam 1 atau 2 satu sama lain? Sekarang 100 * 50 atau ~ 5.000! Sekarang bayangkan 3 dimensi, dll. Anda mulai membutuhkan lebih banyak poin untuk memastikan bahwa setiap poin berada dalam d dari beberapa poin lainnya. Untuk membuat hidup Anda lebih mudah, coba anggap "d" adalah 1 dan lihat apa yang terjadi. Semoga itu bisa membantu!
sumber
n~1/d
akan berarti n harus sekitar 1? Itu tidak masuk akal?matty-d
telah memberikan jawaban yang sangat bagus, tetapi saya menemukan jawaban lain yang juga menjelaskan masalah ini, dari pengguna Quora Kevin Lacker:sumber
Contoh itu dapat memberikan intuisi masalah, tetapi sebenarnya bukan bukti yang kuat sama sekali: itu hanya contoh di mana banyak sampel diperlukan untuk mendapatkan cakupan ruang yang "baik". Mungkin ada (dan memang ada, misalnya segi enam dalam 2D sudah) cakupan yang jauh lebih efisien daripada grid biasa ... (area canggih dari urutan perbedaan rendah dikhususkan untuk ini) ... dan membuktikan bahwa bahkan dengan penutup yang lebih baik seperti itu masih ada beberapa kutukan dari dimensi adalah masalah lain. Sebenarnya dalam ruang fungsi tertentu bahkan ada cara untuk menghindari masalah ini.
sumber