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
11136
Россия, Москва
Посчитать хешфункцию от всех компонент. :D

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


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

 Профиль  
                  
 
 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
8442
Цюрих
Вообще для начала нужно определить, что вы будете делать с этими признаками дальше - учить какую-то модель предсказывать целевую функцию?
И уточните - вам подойдет какое-то сложное преобразование старых координат, или нужно просто оставить часть, остальные выкинуть?

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


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

да

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


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

Дальше правда посмотреть на 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
8442
Цюрих
Зависит от того, что конкретно вы учите. Но почти все алгоритмы при перезапусках приходят в какой-то другой минимум, но он как правило оказывается примерно того же качества.

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

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


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

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

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


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

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

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



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

Сейчас этот форум просматривают: talash


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

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