Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.05;
Скачать: CL | DM;

Вниз

k-means/c-means перед обучением нейронной сети   Найти похожие ветки 

 
И. Павел ©   (2011-02-17 09:19) [0]

Здравствуйте.

Подскажите, пожалуйста, как правильнее выполнить такую задачу:

1. Исходные данные - таблица продаж, в которой указано количество товара, проданное за каждый день, например, в пределе 10-15 последних лет.
2. Исходные данные подвергаются обработке методами k-means или c-means.
3. Обработанные методом кластеризации, данные отправляются в нейронную сеть. Так проводится обучение сети.
4. Ну а дальше уже сеть функционирует.

Подскажите, пожалуйста, что лучше сделать выходом кластеризации и, следовательно, входом в нейронную сеть?
У меня пока есть 2 варианта:

1. Те же точки, что и поступили на вход кластеризации. Но только значение в каждой из этих точек будет уже равно значению центра кластеризации кластера, которому точка принадлежит (т.е. имели  [1 3 4 2 4 5 6 5 9] а после кластеризации получили, например [3 3 3 3 7 7 7 7 7]). Если пользователь выберет c-means, то, если точка (дневная продажа) на 10% принадлежит к кластеру с центром = 100 и на 90% к кластеру с центром = 200, то значение в этой точке = 0.1*100 + 0.9*200 = 190 (правилен ли такой способ?).

2. Центры кластеризации (т.е. имели  [1 3 4 2 4 5 6 5 9] а после кластеризации получили, например [3 7]). Недостатки этого метода очевидны: во-первых число кластеров хотя бы на порядок меньше числа исходных точек. А на маленьком числе точек система не обучится. Во-вторых: исходные данные (дневные продажи) расположены на временной оси равномерно (есть значение для каждого дня), а центры кластеризации расположены на временной оси не равномерно. Т.е. если передавать на вход нейронной сети центры кластеризации, то вместе с ними нужно будет передавать еще и даты, которым эти центры соответствуют. Уж больно разнотипные входные данные - числа продаж и даты, и я думаю, что такая нейронная сеть будет почти не обучаема...

PS: лично я бы вообще не делал кластеризации исходных данных, ИМХО эта операция только добавит неопределенность, но задачу не я ставлю.

Заранее спасибо.


 
Jeer ©   (2011-02-17 09:56) [1]

http://logic.pdmi.ras.ru/~yura/internet/02ia-seminar-note.pdf
http://www.ccas.ru/voron/download/Clustering.pdf
http://www.nd.edu/~flynn/papers/Jain-CSUR99.pdf
http://www.machinelearning.ru
http://www.intuit.ru/department/database/datamining/
http://ru.wikipedia.org/wiki/K-means
http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/cmeans.html
http://www.basegroup.ru/library/analysis/


 
И. Павел ©   (2011-02-17 10:14) [2]

> [1] Jeer ©   (17.02.11 09:56)

Большое спасибо за ссылки!
Особенно за первые 2 книги. Уже начал читать - все четко и ясно описано. Попробую 3 тожде прочитать, если осилю :)
Про существования сайта http://www.machinelearning.ru даже не знал.


 
TUser ©   (2011-02-17 11:17) [3]


> правилен ли такой способ?

Что значит "правильный"? Правильный способ - тот, который решает поставленную задачу. А тут задача не поставлена, кроме "применить метод такой-то". В этом смысле - правильный, метод будет применен.

Только тут к психоаналитику надо - а вы действительно хотите применить кластеризацию, хотите об этом поговорить и т.д.

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

Только непонятно, почему именно k-means для такой задачи. А если кластеров у тебя не к, не угадал число? Ну и кластер у тебя тут - набор последовательно идущих чисел, что принципиально. Имхо, тут сглаживание какое-нибудь надо.


 
Гость   (2011-02-17 11:19) [4]

спасибо 2.


 
И. Павел ©   (2011-02-17 12:08) [5]

> Имхо, тут сглаживание какое-нибудь надо.

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


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

А это мысль. Передавать в нейронную сеть значения в центре кластеризации и длину кластеров. Думаю, это наиболее естественный путь - объединить k/c-means с нейронными сетями. Правда, опять-таки будет 2 типа входов, но если кластеров будет достаточно много, попробую этим способом.

Что касается кривоватых условий задачи - лично я предполагаю (хотя достоверных сведений нет), что преподаватель где-то прочитал, что нейронные сети и k-means - это два вида Data Minding и решил, что два этих метода взаимозаменяемы и можно решить задачу сначала одним, потом другим, а потом сравнить результат. А когда ему сказали, что это не получится, т.к. методы направлены на разные виды обработки данных, то сказал, что тогда нужно применить эти методы поочереди: сначала использовать k-means а потом нейронную сеть. Но это мое ИМХО.


 
TUser ©   (2011-02-17 12:14) [6]


> что преподаватель где-то прочитал

эээ, диплом кому-то делаешь?


 
И. Павел ©   (2011-02-17 12:22) [7]

> эээ, диплом кому-то делаешь?

Скорее помогаю формализовать задачу. По крайней мере уже не будет написан диплом "Сравнение методов k-means и нейронных сетей в вопросах прогнозирования".


 
TUser ©   (2011-02-17 12:28) [8]

А судя по дате на календаре тема диплома вполне может уже быть утверждена и не подлежать изменению :-(



Страницы: 1 вся ветка

Текущий архив: 2011.06.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1298993690
Андрей_новичок
2011-03-01 18:34
2011.06.05
Получить путь и имя файла рисунка рабочего стола


15-1298291672
Baks
2011-02-21 15:34
2011.06.05
Дебаггер для разных версий Delphi


2-1298894365
advise
2011-02-28 14:59
2011.06.05
Посоветуйте плз при помощи какого компонента сделать?


15-1297940356
***
2011-02-17 13:59
2011.06.05
«Яндекс» и «Касперский» вошли в топ самых инновационных компаний


1-1256130157
sniknik
2009-10-21 17:02
2011.06.05
Узнать позицию (индекс) текущей строчки меню TMainMenu.TMenuItem