2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Как понизить размерность, если точные признаки неизвестны?
Сообщение02.04.2017, 21:34 


15/01/12
196
Есть вектор, ему в соответствие ставится число.
Компоненты вектора не коррелируют между собой.
Пытаюсь определить зависимость при помощи нейросети или регрессии, но хотелось бы перед этим снизить размерность вектора.
Про стандартные методы в курсе, но они оставляют или выбрасывают уже готовые признаки, а мне, судя по всему, надо эти признаки самостоятельно определить при помощи функций, зависящих от координат вектора. Как найти эти функции?

Число компонент вектора для фиксировано и равно 200, но, возможно, появится необходимость работать как с 10- так и с 1000-мерными векторами.
Как поступать?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение02.04.2017, 21:58 
Заслуженный участник


20/08/14
11057
Россия, Москва
Посчитать хешфункцию от всех компонент. :D

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение02.04.2017, 23:19 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Автоэнкодер. Сеть, которая учится представлять вектор как функцию от вектора малой размерности.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение03.04.2017, 01:17 
Заслуженный участник


26/05/14
981
Посмотрите сингулярное разложение и метод главных компонент.
Если ваши вектора все лежат в некотором подпространстве, то эти методы позволят отыскать это подпространство и снизить размерность.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение03.04.2017, 13:46 


15/01/12
196
mihaild и slavav, cпасибо за советы.
А если выделить одну из координат вектора и попытаться с помощью нейросети представить её, как функцию других, но это не получится, то в предположении "хорошего" обучения нейросети следует вывод, что не получится снижать размерность? Или по крайней мере при снижении размерности использовать ту самую координату смысла нет?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение04.04.2017, 07:13 
Аватара пользователя


31/10/08
1244
Повышение размерности как и понижение является нерешённой(в может и неразрешимой) задачею.
Если у вас не работает метод на ваших данных. Это означает, что надо искать другой метод или менять данные. Но неизвестно найдёте вы его или нет.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение04.04.2017, 18:04 


17/10/08

1313
Еще одна идея.

xgboost, например, имеет что-то вроде "значимости" переменных. Несколько согрешив относительно истины, можно сказать, что при обучении вычисляется, какую долю в увеличение точности вносит каждая из переменных.

Поэтому, можно на относительно небольшой выборке сделать обучение и отобрать только наиболее значимые переменные. А потом, на большем объеме данных, использовать только отобранные признаки.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение04.04.2017, 19:16 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Вообще для начала нужно определить, что вы будете делать с этими признаками дальше - учить какую-то модель предсказывать целевую функцию?
И уточните - вам подойдет какое-то сложное преобразование старых координат, или нужно просто оставить часть, остальные выкинуть?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 08:35 


15/01/12
196
Подойдёт преобразование, выкидывать пока ничего не собираюсь.
Цитата:
что вы будете делать с этими признаками дальше - учить какую-то модель предсказывать целевую функцию?

да

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 13:01 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Тогда вам в первую очередь стоит обучить модель на исходных признаках (если это вычислительно возможно) и посмотреть, что будет в случае, когда преобразование тождественно. И дальше смотреть, как отличается по качеству обученная на преобразованных признаках модель.
Признаки имеют какую-то интерпретируемую природу? Они "однородны" (пиксели на картинке) или разнородны (цена и потраченное время)? Если второе, то может быть смысл попытаться для начала добавить какие-то признаки вручную.

Дальше правда посмотреть на PCA (которе будет частным случаем автоэнкодера для линейного преобразования).

Какая модель будет в итоге учиться, фиксировано?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 13:28 


15/01/12
196
Модель ещё не выбрал, сейчас пробую разные, но все они дают примерно одинаковый результат.
Признаки однородные.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 17:22 


15/01/12
196
Сейчас очень быстро вне зависимости от начальных условий получаю примерно один и тот же ответ.
Пока что могу придумать только смену алгоритма обучения. Есть ещё какие-либо варианты?
Есть ли общие способы, предотвращающие приход алгоритма к известному минимуму?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 20:44 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Зависит от того, что конкретно вы учите. Но почти все алгоритмы при перезапусках приходят в какой-то другой минимум, но он как правило оказывается примерно того же качества.

Если хотите повышать качество - то это уже общая задача машинного обучения. Можете попробовать стандартные способы. Без конкретики что-то еще посоветовать сложно.

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 20:59 


15/01/12
196
Цитата:
стандартные способы

Какие, что гуглить?

 Профиль  
                  
 
 Re: Как понизить размерность, если точные признаки неизвестны?
Сообщение05.04.2017, 21:06 
Заслуженный участник
Аватара пользователя


16/07/14
8335
Цюрих
Курсы по машинному обучению (Воронцова, например). Дальше - например, статьи на каггле.
(пример стандартного способа для контестов, но не для промышленного использования - обучить несколько разных моделей и взять голосование/среднее/ансамбль)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group