2014 dxdy logo

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

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




 
 Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 11:25 
Хотелось бы уточнить, как наиболее правильно и быстро выбрать параметры (переменные) для дальнейшего предикативного анализа данных?

Есть большое количество переменных, которые по гипотезе могут (а может быть и не могут) влиять на целевую функцию. Переменные могут быть как качественные (текстовые), так и количественные. Целевая функция может принимать только 2 значения - Плохо или Хорошо, условно 0 или 1.

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

Подскажите, пожалуйста.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 14:06 
Аватара пользователя
Какой способ вы согласны считать "экспрессом"? Например, метод главных компонент? Или кластеризацию показателей?

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 14:51 
Про скорость обработки данных этими методами мне ничего не известно. Вам виднее. Что посоветуете?

Правильно понимаю, что это 2 основных способа, позволяющих уменьшить размерность данных?

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 14:57 
Аватара пользователя
Ну, я не такой уж специалист... Но эти попадаются чаще. Вернее, метод главных компонент -- это частный случай факторного анализа.

Да вы гляньте сами "методы сокращения (снижения) размерности". Единственно, я не знаю, может ли повлиять вид целевой функции на выбор метода.

Что касается скорости обработки -- зависит от средства обработки (я работаю с R, но реально больших данных не попадалось). А у вас какая размерность данных?

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

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 15:30 
поиск корреляций между данными еще. может у вас половина переменных - зависимые.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 15:34 
Аватара пользователя
upgrade в сообщении #976802 писал(а):
поиск корреляций между данными еще.

Собственно, кластеризация показателей как раз связана с корреляцией (она берется как мера близости/различия)

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 15:44 
provincialka в сообщении #976796 писал(а):
Что касается скорости обработки -- зависит от средства обработки (я работаю с R, но реально больших данных не попадалось). А у вас какая размерность данных?


Да вы что? Я тоже изучаю R и собираюсь делать анализ именно с помощью этого инструмента. Может быть подскажите как сократить размерность с помощью R? Задача для меня совершенно новая. Всего от 50 до 100 параметров. Только я не знаю, нужны ли они все или нет. Конечно в программу (R) можно загнать и весь набор данных.

В итоге, нужно понять как они влияют на целевую функцию, выявить влияющие на функцию, ну и потом спрогнозировать значение функции.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 16:04 
Аватара пользователя
Ну, программу выделения главных компонент написать легко: основная команда prcomp(). Пусть данные хранятся в объекте dann (например, типа data.frame)

Код:
prcomp(dann)$rotation-> a
as.matrix(dann) %*% a-> nov
plot(nov[,1:2])


Здесь a -- матрица поворота данных. as.matrix нужно для того, чтобы преобразовать таблицу (data.frame) в матрицу (matrix). Это если данные именно в таком виде.

В nov будут храниться новые "повернутые" данные, первые компоненты - самые важные.

Но, конечно, в таком виде программа применяется к однородным данным (с примерно одинаковым разбросом). Если не так, можно предварительно применить шкалирование scale().

Посмотрите состав объекта prcomp(dann). Там должны храниться сведения о вкладе каждой компоненты в дисперсию.

-- 11.02.2015, 16:15 --

Нет, кажется, надо данные сперва транспонировать, t(dann). Иначе будут преобразовываться объекты... Впрочем, посмотрите сами.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 17:25 
Спасибо! Попробую.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 18:41 
Аватара пользователя
 i  provincialka, используйте для малых кусков кода тег tt.

 
 
 
 Re: Как правильно выбрать данные из ген. совокупности?
Сообщение11.02.2015, 18:42 
Аватара пользователя
Deggial
Спасибо! Как раз хотела спросить, как это делать. Исправлю.

 
 
 [ Сообщений: 11 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group