Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Реальная задача: возможно ли применение нейронных сетей?

 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Пт Авг 15, 2008 1:32 pm    Заголовок сообщения: Реальная задача: возможно ли применение нейронных сетей? Ответить с цитатой

Привет!

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

Компания продает разные виды продукции (30-40 видов) клиентам, причем клиенты уходят по прошествии времени, например, сотрудничают год, два, три ...

Сравнивая группы потерянных клиентов и тех, кто продолжает сотрудничество с компанией в последующие годы, я добился некоторых интересных результатов, используя метод дискриминантного анализа в программе SPSS. Я исследовал, средние значения продаж каких видов продукции наиболее сильно разнятся в группах потерянных и непотерянных клиентов. Для прогнозирования того, кто станет потерянным клиентом в текущем году, скажем.

Можно ли потренировать НС на примерах предыдущих лет (4 лет) для распознания потерянных/непотерянных клиентов, чтобы делать прогноз в нынешнем году?

Спасибо.
Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Пт Авг 15, 2008 4:57 pm    Заголовок сообщения: Ответить с цитатой

Наверно, можно.
Но! Опять же никто (см. мой ответ на другой Ваш вопрос) не представляет, насколько информативные признаки могут быть вытащены из Ваших данных и, в итоге, какая будет точность у нейросетевой решалки. За такими прогнозами - к нострадамусам.
Берите и пробуйте. За Вас эту задачу решать всё равно никто не будет - тут максимум могут подсказать с каким-то проблемным местом или подводным камнем, если четко обрисуете эту конкретную проблемную ситуацию (от свойств данных до поведения на этих данных нейросеток и их алгоритмов обучения).
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Вс Авг 17, 2008 3:14 pm    Заголовок сообщения: Ответить с цитатой

Понятно, спасибо. Буду, опять же, пробовать.

Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Авг 21, 2008 3:10 pm    Заголовок сообщения: Ответить с цитатой

Привет!

Я начал уже работать с нейросетью и появились вопросы ("зеленые").

Я решаю задачи классификации потерянных и непотерянных клиентов (1;0).

1. Мои данные это 36 переменных (объемы продаж продукции), характеризующих потребителей. Я для начала провел Z-преобразование всех переменных в SPSS и выкинул несколько переменных, которые сильнее всего кореллировали с отстальными. Количество потребителей (примеров) = 1500. Такие преобразования данных скажутся положительно на то, как нейросеть будет их воспринимать или неизвестно как? (Сделал это так как значения переменных различались в десятки раз).

2. Использовал перцептрон с одним слоем и одним нейроном. Уровень ошибки после 100 и 1000 эпох автоматического обучения составлял 0,4. Потом стал использовать сеть Feed-forward Backpropagation (просто читал, что это часто используемая сеть.) Никакие настройки не трогал, но сделал два слоя, в первом 36, во втором 1 нейрон. Ошибка после 250 эпохи (на момент написания сеть обучается) составила уже 0,14. Это ведь хорошо? Или я что-то путаю?

Спасибо если ответите.
Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 248
Откуда: Красноярск

СообщениеДобавлено: Чт Авг 21, 2008 4:44 pm    Заголовок сообщения: Ответить с цитатой

1. Скорее всего неоптимальный вариант. Лучше бы вручную настроить правила трансформации-масштабирования каждой отдельной переменной (нормальный нейрософт это позволяет), а лишними=избыточными переменными лучше пока не заморачиваться (нормальный нейрософт имеет способы определения избыточных переменных уже "по мнению" самой обученной нейросети, и это субъективное нейромнение может быть полярным Вашему субъективному мнению)

2.1. Повторяю - тут телепатов нет и никто не знает, какой нейропрограммой Вы пользуетесь.
2.2. Скорее всего, Вы заменили однонейронную сеть-перцептрон с пороговым нейроном на такую же однонейронную сеть с нелинейным сигмоидным нейроном Wink Ошибка - да, может уменьшиться даже при этом.
2.3. Цифры ошибок ничего не говорят о том, насколько правильно классифицируются клиенты (т.е. "попугаи", в которых измеряется ошибка, ничего не говорят о точности решения задачи классификации, надо указывать, да и изучать именно точность классификации).

PS. Замолкаю, себя я уже в теме прорекламировал, а тратить время на ответы из нейроучебников и ситуации "аборт по интернету не делается" - лень и бесперспективно для меня.
_________________
neuropro.ru - нейронные сети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Авг 21, 2008 5:07 pm    Заголовок сообщения: Ответить с цитатой

Спасибо Вам большое!

Я полюзуюсь Neural Networks Toolbox в Matlab 7.

Теперь я с данными по другому поступил. В матлабе их привел к диапазону [-1;1] через функцию premnmx(p). Сделал это только с входными данными, потому что цели и так представлены в диапазоне [0;1].

Число нейронов сделал 4 (посчитал по материалам одной статьи в инете) и пользуюсь типом сети Fedd-forward Backprop. Про точность я понял, прочитал, что высокая точность может иметь обратную сторону в виде неспособности сети генерализировать тестовые данные.

Пробую еще.

Спасибо! Очень интересно!
Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Сб Авг 23, 2008 12:26 pm    Заголовок сообщения: Ответить с цитатой

Пока не очень получается получить точные результаты.

Могли бы Вы подсказать? Если я использую сеть Feed-Forward Backprop с двумя слоями. Всего 5 нейронов: 4 и 1. Кривая ошибки вроде неплохая: примерно 0,18-0,20. Но после обучения и валидации, когда я делаю симуляцию (на новых данных), и потом сравниваю выходные данные с известными, то получается, что точность вообще никакая. Во-первых, в этот типе сети функция в последнем слое дает нецелые значения от 0 до 1. А у меня они или 0 или 1, и получается вообще ерунда, пробовал округлять, сортировать по убыванию (предполагая, что такие данные имеют вероятностный характер) но точность оч. низкая.

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

Данные у меня приведены к диапазону -1 до 1, константных переменных нет, выборки для обучения, валидации и симуляции выбраны случайным образом и не пересекаются.

Пока я в тупике.

Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Вт Авг 26, 2008 12:32 pm    Заголовок сообщения: Ответить с цитатой

Методом проб и ошибок использовал топологию сети Cascad ... Backpropagation (точно не помню) и получились некоторые разумные результаты: порядка 80% правильно классифицированных случаев. Но меня это не устраивает. Кроме того, хочу освоить feed-forward backprop.

Еще использовал файл Excel с макросами NNClass. Там реализована как раз feed-forward backprop сеть, но чтобы я не делал с параметрами, точность болтается в районе 65% (то есть 35% неправильно классифицированных случаев). Может быть данные у меня не информативны?

Алексей
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
alexey_mosc
Участник форума
Участник форума


Зарегистрирован: 31 Июл 2008
Сообщения: 64

СообщениеДобавлено: Чт Июн 03, 2010 1:19 pm    Заголовок сообщения: Ответить с цитатой

Добрый день!

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

В качестве независимых переменных подавал закупки клиентами различной продукции за фиксированный период, за 1 год.

Получился входной вектор из 33 переменных и один выход, значения которого кодируются как 0 или 1.

Результатом я остался доволен, а больше мне никто не ставит пороги точности (не технический анализ, все же). Не меньше 85% кейсов классифицируются верно (это относится и к потерянным и к непотерянным). При этом, уверенно класифируютя не менее 50% кейсов из выборки, остальные 50% - не относятся к какому то классу с большей вероятностью. Поясню: если значение на выходе меньше 0,25 - то считаем, что 0; если больше 0,75, то считаем 1. Все в середине - случайно распределяется между классами.

Пару слов хочу сказать о технической стороне. 1-ое. Указывал выходную переменную как непрерывную, чтобы сеть аппроксимировала значения ближе к 0 или 1, таким образом давай указание о том, насколько "достоверно" конкретному примеру присваивается класс. Иначе точность падает до 70%, что, фактически, нулевой результат, так как этих потерянных клиентов около 70% в обучающей выборке.

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

В целом, задача неплохо решается аналитически, ИМХО. И, кстати, решается с чуть ли не первой попытки, даже без работы по отсеиванию неинформативных входных переменных и подборе остальных параметров многослойной сети.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100