Có phải lời nguyền của chiều không gian thực sự có tồn tại trong dữ liệu thực?


17

Tôi hiểu thế nào là "lời nguyền của chiều" và tôi đã thực hiện một số vấn đề tối ưu hóa chiều cao và biết thách thức của các khả năng theo cấp số nhân.

Tuy nhiên, tôi nghi ngờ nếu "lời nguyền về chiều" tồn tại trong hầu hết dữ liệu trong thế giới thực (hãy tạm gác hình ảnh hoặc video sang một bên, tôi đang nghĩ về dữ liệu như dữ liệu hành vi mua hàng và nhân khẩu học của khách hàng).

Chúng tôi có thể thu thập dữ liệu với hàng ngàn tính năng nhưng ít có khả năng các tính năng có thể trải rộng hoàn toàn một không gian với hàng ngàn kích thước. Đây là lý do tại sao các kỹ thuật giảm kích thước rất phổ biến.

Nói cách khác, rất có thể dữ liệu không chứa mức thông tin theo cấp số nhân, nghĩa là, nhiều tính năng có tương quan cao và nhiều tính năng đáp ứng 80-20 quy tắc (nhiều trường hợp có cùng giá trị).

Trong trường hợp như vậy, tôi nghĩ các phương pháp như KNN vẫn sẽ hoạt động tốt. (Trong hầu hết các cuốn sách "lời nguyền về chiều" nói rằng chiều> 10 có thể có vấn đề. Trong bản demo của họ, họ sử dụng phân phối đồng đều ở tất cả các chiều, trong đó entropy thực sự cao. Tôi nghi ngờ trong thế giới thực điều này sẽ xảy ra.)

Kinh nghiệm cá nhân của tôi với dữ liệu thực là "lời nguyền về chiều" không ảnh hưởng đến phương thức mẫu (như KNN) quá nhiều và trong hầu hết các trường hợp, kích thước ~ 100 vẫn sẽ hoạt động.

Điều này có đúng với người khác không? (Tôi đã làm việc với dữ liệu thực trong các ngành khác nhau trong 5 năm, chưa bao giờ quan sát "tất cả các cặp khoảng cách có giá trị tương tự" như được mô tả trong sách.)


1
Vì bạn đặc biệt loại trừ hình ảnh và phân tích hình ảnh, tôi sẽ chỉ đưa ra các bình luận bằng cách nói rằng lĩnh vực này đối phó với lời nguyền về chiều không thường xuyên. Rất dễ dàng để có được một giải pháp phù hợp.
Ashe

7
Các tính năng phân loại được mã hóa nhị phân / giả / một nóng có thể dễ dàng thổi bùng một mô hình dựa trên khoảng cách
Shadowtalker

2
Một đồng nghiệp của tôi đã làm việc với doanh số bán kính râm. Khá nhiều tính năng được phân loại với số lượng lớn các cấp độ có thể (ví dụ: nhãn hiệu, vật liệu của các bộ phận khác nhau của kính, v.v.). Tôi chắc chắn rất sợ CoD, nhưng thật khó để nói liệu nó có xuất hiện trong một tập dữ liệu cụ thể hay không, cộng với chúng tôi có lẽ đã không thực hiện nhiều thủ thuật tiêu chuẩn, không phải là chuyên gia trong loại phân tích cụ thể này.
S. Kolassa - Tái lập Monica

@StephanKolassa Vậy, phương pháp dựa trên khoảng cách có hoạt động trong trường hợp sử dụng kính mặt trời không?
Haitao Du

Không quá tốt. Đó không phải là một dự án rất thành công.
S. Kolassa - Tái lập Monica

Câu trả lời:


15

Bài viết này (1) thảo luận về phước lành của sự không đồng nhất như là một đối trọng với lời nguyền của chiều. Ý tưởng chính là dữ liệu không được phân tán đồng đều trong không gian tính năng, do đó người ta có thể có được lực kéo bằng cách xác định cách thức tổ chức dữ liệu.

(1) Pedro Todos, "Một vài điều hữu ích cần biết về học máy"


7

Lời nguyền về chiều hướng trong học máy thường là vấn đề bùng nổ không gian trống giữa một vài điểm dữ liệu mà bạn có. Dữ liệu đa dạng thấp có thể làm cho nó thậm chí còn tồi tệ hơn. Dưới đây là một thiết lập ví dụ với 10000 mẫu trong đó tôi cố gắng thực hiện kNN với 1 hàng xóm.

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()

Bạn không thích phân phối đồng đều hoàn toàn, vì vậy tôi đã biến nó thành một đa tạp 2D với kích thước nhỏ hơn (giảm đi scale) rắc xung quanh mặt phẳng 2D của hai tọa độ đầu tiên. Khi điều đó xảy ra, một trong các kích thước nhỏ hơn là dự đoán (nhãn là 1 khi kích thước đó là dương).

Độ chính xác giảm nhanh chóng với kích thước tăng dần.độ chính xác kNN

Tất nhiên, độ chính xác = 0,5 sẽ là đoán ngẫu nhiên. Với bề mặt quyết định, phức tạp hơn máy bay, nó sẽ còn tồi tệ hơn.

Giống như những quả bóng kNN quá thưa thớt không hữu ích trong việc thăm dò một siêu phẳng trơn tru. Với kích thước cao hơn họ cảm thấy ngày càng cô đơn.

Mặt khác, các phương thức như SVM có cái nhìn toàn cầu và làm tốt hơn nhiều.


5

Xem xét ví dụ chuỗi thời gian (và hình ảnh và âm thanh). Cảm biến đọc (Internet of Things) là rất phổ biến.

Lời nguyền của chiều là phổ biến hơn nhiều so với bạn nghĩ. Có một sự dư thừa lớn ở đó, nhưng cũng có rất nhiều tiếng ồn.

Vấn đề là nhiều người chỉ đơn giản tránh những thách thức này của dữ liệu thực và chỉ sử dụng cùng một bộ dữ liệu UCI được lặp đi lặp lại.


P(X)=P(X1)n=2NP(Xn|Xn1)

1
Có lẽ hầu hết dữ liệu trong thế giới thực từ các cảm biến như hình ảnh, video và chuỗi thời gian?
Anony-Mousse -Reinstate Monica

2
Tài sản markov @ hxd1011 là một sự trừu tượng có thể không liên quan gì đến dữ liệu thực!
Sycorax nói phục hồi Monica

0

Có một bài viết tuyệt vời, "Mô hình thống kê: hai nền văn hóa" của Breiman. Ông giải thích hai nhóm các nhà khoa học xử lý dữ liệu và cách mỗi người trong số họ nhìn vào "chiều". Câu trả lời cho câu hỏi của bạn là "nó phụ thuộc" vào nhóm bạn. Kiểm tra giấy ra.


Cảm ơn @Zamir Akimbekov, có nhiều cuộc thảo luận tuyệt vời ở đây và một bài viết thú vị khác ở đây
Haitao Du
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.