Apakah "kutukan dimensi" benar-benar ada dalam data nyata?

17

Saya mengerti apa itu "kutukan dimensi", dan saya telah melakukan beberapa masalah optimasi dimensi tinggi dan mengetahui tantangan dari kemungkinan eksponensial.

Namun, saya ragu apakah "kutukan dimensi" ada di sebagian besar data dunia nyata (yah mari kita kesampingkan gambar atau video sejenak, saya berpikir tentang data seperti data demografi pelanggan dan perilaku pembelian).

Kami dapat mengumpulkan data dengan ribuan fitur tetapi kemungkinannya kecil bahkan fitur tersebut dapat sepenuhnya menjangkau ruang dengan ribuan dimensi. Inilah sebabnya mengapa teknik reduksi dimensi sangat populer.

Dengan kata lain, sangat mungkin data tidak mengandung tingkat informasi eksponensial, yaitu, banyak fitur sangat berkorelasi dan banyak fitur memenuhi 80-20 aturan (banyak instance memiliki nilai yang sama).

Dalam kasus seperti itu, saya pikir metode seperti KNN akan tetap bekerja dengan cukup baik. (Dalam kebanyakan buku "kutukan dimensi" mengatakan dimensi> 10 bisa bermasalah. Dalam demo mereka menggunakan distribusi seragam di semua dimensi, di mana entropi sangat tinggi. Saya ragu di dunia nyata ini akan pernah terjadi.)

Pengalaman pribadi saya dengan data nyata adalah bahwa "kutukan dimensi" tidak terlalu memengaruhi metode templat (seperti KNN) dan dalam kebanyakan kasus, dimensi ~ 100 masih akan berfungsi.

Apakah ini benar untuk orang lain? (Saya bekerja dengan data nyata di berbagai industri selama 5 tahun, tidak pernah mengamati "semua pasangan jarak memiliki nilai yang sama" seperti yang dijelaskan dalam buku ini.)

hxd1011
sumber
1
Karena Anda secara khusus mengecualikan gambar dan analisis gambar, saya hanya akan memasang sebuah plug di komentar dengan mengatakan bidang ini tidak berurusan dengan kutukan dimensi secara cukup teratur. Sangat mudah untuk mendapatkan solusi pakaian luar.
Ashe
7
Fitur kategori yang dikodekan biner / dummy / satu-panas dapat dengan mudah meledakkan model berbasis jarak
shadowtalker
2
Seorang kolega saya telah bekerja dengan penjualan kacamata hitam. Cukup banyak fitur yang dikategorikan dengan sejumlah besar tingkat yang memungkinkan (misalnya, merek, bahan dari berbagai bagian kacamata, dll.). Saya benar-benar takut pada CoD, tetapi selalu sulit untuk mengatakan apakah itu ada dalam dataset tertentu, plus kami sangat mungkin tidak melakukan banyak trik standar, tidak menjadi ahli dalam tipe analisis khusus ini.
S. Kolassa - Reinstate Monica
@StephanKolassa Jadi, apakah metode berbasis jarak bekerja di case use glass sun?
Haitao Du
Tidak terlalu baik. Itu bukan proyek yang sangat sukses.
S. Kolassa - Reinstate Monica

Jawaban:

15

Makalah ini (1) membahas berkah non-seragam sebagai tandingan kutukan dimensi. Gagasan utamanya adalah bahwa data tidak tersebar secara seragam di dalam ruang fitur, sehingga orang dapat memperoleh daya tarik dengan mengidentifikasi cara-cara di mana data disusun.

(1) Pedro Domingos, "Beberapa Hal Berguna untuk Diketahui tentang Pembelajaran Mesin"

Sycorax berkata Reinstate Monica
sumber
7

Kutukan dimensi dalam pembelajaran mesin lebih sering menjadi masalah meledaknya ruang kosong di antara beberapa titik data yang Anda miliki. Data berjenis rendah dapat membuatnya lebih buruk. Berikut adalah contoh pengaturan dengan 10.000 sampel di mana saya mencoba melakukan kNN dengan 1 tetangga.

from numpy.random import normal
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import precision_score
import matplotlib.pyplot as plt
import numpy as np
from math import sqrt
from scipy.special import gamma

N=10000
N_broad=2
scale=20

dims=[]
precs=[]


def avg_distance(k):
    return sqrt(2)*gamma((k+1)/2)/gamma(k/2)

for dim in range(N_broad+1,30):
    clf = KNeighborsClassifier(1, n_jobs=-1)

    X_train=np.hstack([normal(size=(N,N_broad)), normal(size=(N,dim-N_broad))/avg_distance(dim-N_broad)/scale])
    y_train=(X_train[:,N_broad]>0).astype(int)
    clf.fit(X_train, y_train)

    X_test=np.hstack([normal(size=(N,N_broad)), normal(size=(N,dim-N_broad))/avg_distance(dim-N_broad)/scale])
    y_test=(X_test[:,N_broad]>0).astype(int)
    y_test_pred=clf.predict(X_test)

    prec=precision_score(y_test, y_test_pred)
    dims.append(dim)
    precs.append(prec)
    print(dim, prec)

plt.plot(dims, precs)
plt.ylim([0.5,1])
plt.xlabel("Dimension")
plt.ylabel("Precision")
plt.title("kNN(1) on {} samples".format(N))
plt.show()

Anda tidak suka distribusi sepenuhnya seragam, jadi saya membuat ini manifold 2D dengan dimensi lebih kecil (dikurangi oleh scale ) ditaburkan di sekitar bidang 2D dari dua koordinat pertama. Ketika itu terjadi, salah satu dimensi yang lebih kecil bersifat prediktif (labelnya adalah 1 ketika dimensi itu positif).

Presisi turun dengan cepat dengan meningkatnya dimensi.ketepatan kNN

Tentu saja, ketelitian = 0,5 adalah tebakan acak. Dengan permukaan keputusan, yang lebih rumit daripada pesawat, itu akan menjadi lebih buruk.

Ini seperti bola kNN terlalu jarang untuk membantu dalam mencari hyperplane yang halus. Dengan dimensi yang lebih tinggi, mereka merasa semakin kesepian.

Di sisi lain, metode seperti SVM memiliki pandangan global dan jauh lebih baik.

Gerenuk
sumber
5

Pertimbangkan misalnya deret waktu (dan gambar, dan audio). Bacaan sensor (Internet of Things) sangat umum.

Kutukan dimensi jauh lebih umum daripada yang Anda pikirkan. Ada redundansi besar di sana, tetapi juga banyak kebisingan.

Masalahnya adalah bahwa banyak orang hanya menghindari tantangan data nyata ini, dan hanya menggunakan set data UCI cherryupicked yang sama berulang-ulang.

Anony-Mousse -Reinstate Monica
sumber
Ya saya setuju. Ucapkan model urutanP(X)=P(X1)n=2NP(Xn|Xn-1). Properti Markov adalah cara untuk mengatur dan mengatasi kutukan dimensi. Tetapi seri waktu seperti gambar atau video.
Haitao Du
1
Mungkin sebagian besar data dunia nyata berasal dari sensor seperti gambar, video, dan rangkaian waktu?
Anony-Mousse -Reinstate Monica
2
@ markx properti hxd1011 adalah abstraksi yang mungkin tidak ada hubungannya dengan data nyata!
Sycorax berkata Reinstate Monica
0

Ada artikel yang bagus, "Pemodelan Statistik: dua budaya" , oleh Breiman. Dia menjelaskan dua kelompok ilmuwan yang menangani data dan bagaimana masing-masing dari mereka memandang "dimensionalitas". Jawaban untuk pertanyaan Anda adalah "itu tergantung" di kelompok mana Anda berada. Periksa kertasnya.

Zamir Akimbekov
sumber
Terima kasih @Zamir Akimbekov, ada diskusi hebat di sini , dan makalah menarik lainnya di sini
Haitao Du