Существует ли «проклятие размерности» в реальных данных?


17

Я понимаю, что такое «проклятие размерности», и я выполнил некоторые задачи по оптимизации больших размеров и знаю проблему экспоненциальных возможностей.

Однако я сомневаюсь, существует ли «проклятие размерности» в большинстве данных реального мира (ну, давайте на минуту отложим изображения или видео, я думаю о таких данных, как демографические данные клиентов и данные о поведении покупок).

Мы можем собирать данные с тысячами объектов, но вряд ли даже невозможно, чтобы объекты могли полностью охватывать пространство с тысячами измерений. Вот почему методы уменьшения размеров так популярны.

Другими словами, весьма вероятно, что данные не содержат экспоненциального уровня информации, т. Е. Многие функции имеют высокую степень корреляции, и многие функции удовлетворяют правилам 80-20 (многие экземпляры имеют одинаковое значение).

В таком случае, я думаю, что такие методы, как KNN, все еще будут работать достаточно хорошо. (В большинстве книг «проклятие размерности» говорит, что измерение> 10 может быть проблематичным. В своих демонстрациях они используют равномерное распределение во всех измерениях, где энтропия действительно высока. Я сомневаюсь, что в реальном мире это когда-нибудь случится.)

Мой личный опыт работы с реальными данными заключается в том, что «проклятие размерности» не слишком сильно влияет на метод шаблона (такой как KNN), и в большинстве случаев измерения ~ 100 все равно будут работать.

Это правда для других людей? (Я работал с реальными данными в разных отраслях в течение 5 лет, никогда не наблюдал, что «все пары расстояний имеют одинаковые значения», как описано в книге.)


1
Поскольку вы специально исключили изображения и анализ изображений, я просто добавлю в комментарии плагин, сказав, что это поле довольно регулярно справляется с проклятием размерности. Это очень легко получить решение для наряда.
Эш

7
Двоичные / фиктивные / горячо закодированные категориальные функции могут легко взорвать модель, основанную на расстоянии
shadowtalker

2
Мой коллега работал с продажей солнцезащитных очков. Довольно много функций были категоричны с большим количеством возможных уровней (например, бренды, материалы разных частей очков и т. Д.). Я определенно боялся CoD, но всегда трудно сказать, присутствует ли он в определенном наборе данных, плюс мы, вероятно, не делали много стандартных уловок, не будучи экспертами в этом конкретном типе анализа.
С. Коласса - Восстановить Монику

@StephanKolassa Итак, работали ли дистанционные методы в случае использования солнцезащитного стекла?
Haitao Du

Не слишком хорошо. Это был не очень успешный проект.
С. Коласса - Восстановить Монику

Ответы:


15

Эта статья (1) обсуждает благословение неоднородности как контрапункт проклятию размерности. Основная идея заключается в том, что данные неравномерно распределены в пространстве признаков, поэтому можно набрать обороты, определив способы организации данных.

(1) Педро Домингос, «Несколько полезных вещей о машинном обучении»


7

Проклятие размерности в машинном обучении чаще всего является проблемой разрыва пустого пространства между несколькими точками данных, которые у вас есть. Низкий коллектор данных может сделать это еще хуже. Вот пример установки с 10000 сэмплами, где я пытаюсь сделать kNN с 1 соседом.

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

Вам не понравились полностью однородные распределения, поэтому я сделал это 2D-коллектором с меньшими размерами (уменьшенными на scale), разбросанными вокруг 2D-плоскости первых двух координат. Как это происходит, одно из меньших измерений является прогнозирующим (метка равна 1, когда это измерение положительно).

Точность быстро падает с увеличением размеров.точность кНН

Конечно, точность = 0,5 будет случайным предположением. С поверхностью принятия решений, которая более сложна, чем плоскость, все станет еще хуже.

Это похоже на то, что шары kNN слишком редки, чтобы быть полезными при исследовании гладкой гиперплоскости. С более высокими размерами они чувствуют себя все более одинокими.

С другой стороны, такие методы, как SVM, имеют глобальное представление и работают намного лучше.


5

Рассмотрим, например, временные ряды (и изображения, и аудио). Показания датчиков (Интернет вещей) очень распространены.

Проклятие размерности встречается гораздо чаще, чем вы думаете. Там есть большая избыточность, но также много шума.

Проблема заключается в том, что многие люди просто избегают этих проблем с реальными данными и используют только одни и те же наборы данных UCI с повторной выборкой снова и снова.


п(Икс)знак равноп(Икс1)ΠNзнак равно2Nп(ИксN|ИксN-1)

1
Может быть , самый реальный мир данных является от датчиков , таких как изображения, видео и времени серии?
Аноним-Мусс

2
@ hxd1011 свойство markov - это абстракция, которая может не иметь ничего общего с реальными данными!
Sycorax сообщает восстановить Monica

0

Есть замечательная статья Бреймана «Статистическое моделирование: две культуры» . Он объясняет две группы ученых, которые имеют дело с данными и как каждая из них смотрит на «размерность». Ответ на ваш вопрос «это зависит», в какой группе вы находитесь. Проверьте бумагу.


Благодаря @Zamir Акимбеков, есть большие дискуссии здесь , и еще одна интересная статья здесь
Хайтао Du
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.