Подскажите с нейросетью |
Здравствуйте, гость ( Вход | Регистрация )
Подскажите с нейросетью |
10.02.2017 - 17:49
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R.
1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические). Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый. 2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них. Спасибо всем за помощь. |
|
11.02.2017 - 19:59
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 |
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R. 1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические). Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый. 2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них. Спасибо всем за помощь. Добрый день. К сожалению, информация, которую Вы предоставили, крайне скудна, что-бы по ней можно было давать какие-то рекомендации. 1. Итак, что Вы реально сообщили: имеется 7+3 переменных и 5 (ПЯТЬ!!!!) наблюдений. При этом "регрессия - не вариант". Я так понял, вы строите три регрессионные модели в каждой из которых 7 независимы и одна зависимая переменная. По пяти точкам! И получаете большую ошибку предсказания. Т.е. это не метод плох, это у Вас нет необходимой информации, для корректного построения модели выбранного типа. Вопрос - каким боком может помочь всемогущая нейронная сеть, если информации нет в самих данных? Может, просто взять нелинейную регрессионную модель? (Просто ради примера, что-бы было понятно - нейронная сеть без промежуточных слоев, содержащая только линейные элементы и обучаемая с помощью линейной оптимизации есть ни что иное, как традиционная регрессионная модель, та самая, которая у Вас "не сработала"). 2. Непонятно, какую вообще задачу Вы ставите. Мы не знаем, и даже не можем догадаться. Может - вы хотите выполнить задачу классификации? Или кластеризации? Или предикативный анализ?? В любой постановке при Ваших данных (я имею ввиду их мизерное количество) можно попытаться применить методы, которые используются в соответствующих разделах Data Science без привлечения ИНС, причем в вашем случае эти методы могут сработать гораздо эффективнее. Другой вопрос - точность, которую Вы получите, но тут уж что есть. Хотите точности - ищите дополнительные данные. 3. Имея 5 замеров в 8-мерном пространстве измерения надеяться на "способы грамотно и математически обосновано сгенерировать наблюдения" - не приходится. 4. "Какое минимальное количество наблюдений нужно, чтобы построить нейросеть?" - ответ совершенно очевиден - чем больше, чем лучше. Именно там, где данных слишком много и "традиционные методы" просто захлебываются, имеет смысл применять ИНС. (см. выше пример с линейной регрессией). 5. Вообще непонятно, каким боком тут знания R, но да, сильно подозреваю, что тут есть "кто-нибудь", не просто знающий, но и использующий R. |
|
12.02.2017 - 13:18
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта 3. Ну приблизительно, аппроксимация повсюду:) 4. я понял, что нужно очень много 5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам. В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией |
|
12.02.2017 - 15:14
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 |
1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите 2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта 3. Ну приблизительно, аппроксимация повсюду:) 4. я понял, что нужно очень много 5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам. В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией Есть такая книга "В.К. Шитиков, Г.С. Розенберг. Рандомизация и бутстреп: статистический анализ в биологии и экологии с использованием R". Попробуйте посмотреть. Думаю, найдете там много чего интересного и полезного на будущее. И по теме "как хитрым способом грамотно и математически обосновано сгенерировать наблюдения для переменных" и по теме "R" (за одно и некоторые иллюзии развеете ).. Но при имеющейся исходной выборке в пять точек рассчитывать на какие-то серьезные результаты в Вашем случае я бы не стал. А смотрел бы в первую очередь в сторону нелинейной регрессии. P.S. Кстати, зачем Вам R я так и не понял. При пяти точках и трех переменных - достаточно EXCEL. Или даже калькулятора Сообщение отредактировал passant - 12.02.2017 - 15:28 |
|
12.02.2017 - 18:13
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1202 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 |
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта Для таких задач в хемометрии традиционно применяются варианты PLS-регрессии. Погуглите на темы PLS in chemometrics, PLS in R. Вот первый попавшийся пакет: ftp://cran.r-project.org/pub/R/web/packag...cs-vignette.pdf Методы и пакеты требуют данных. Может лучше экстрасенс? |
|
12.02.2017 - 20:08
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
Без экстрасенсов и прочих жуликов:) Только чистые данные))
|
|
13.02.2017 - 11:37
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Без экстрасенсов и прочих жуликов:) Только чистые данные)) Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут... А так, 4 точки на одной линии лежат. Но надо понимать, что размерности хватит только для предсказания некого "агрегата по y" (ну "изоповерхность" нарисовать не более). Сообщение отредактировал p2004r - 13.02.2017 - 11:48 |
|
14.02.2017 - 08:14
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 1202 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 |
Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут... Не факт. В PCA вы вращали два набора одновременно. А если использовать constrained ordination типа Redundancy Analysis (RDA) или Partial Least Squares Regression (PLS, разные варианты), то пространство зависимых переменных будет вращаться относительно пространства независимых отдельно. При таком подходе шансов найти проекцию с более близкой к линейной зависимостью куда выше. Считается, что для объяснения дисперсии зависимых показателей от независимых точнее RDA, но для прогноза лучше PLS, которая является несколько смещённым вариантом RDA. Для представленного в посте набора достаточно одной компоненты, зависимость выглядит как S-образная загогулина, но достаточно близко к линии (делал не в R). К сожалению, пока сам разобрался с PLS не полностью, осваиваю. Но и детские болезни в пользовании R: не получается пока разбить data.frame на 2 списка в пределах одного набора data, чтобы назначить один X другой Y (типа как data(oliveoil) в пакете pls). Разберусь с PLS (в R - в частности) - отпишусь в эту ветку. Пока отхожу от шока: оказывается в хемометрии 5-10 образцов с десятками независимых и десятками зависимых показателей - не редкость. Так, что и без экстрасенсов 5 наблюдений может какбэ хватить... Сеть строить смысла нет, по крайней мере на практике используют варианты PLS. Сообщение отредактировал nokh - 14.02.2017 - 08:22 |
|
14.02.2017 - 08:37
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Не факт. В PCA вы вращали два набора одновременно. А если использовать constrained ordination типа Redundancy Analysis (RDA) или Partial Least Squares Regression (PLS, разные варианты), то пространство зависимых переменных будет вращаться относительно пространства независимых отдельно. При таком подходе шансов найти проекцию с более близкой к линейной зависимостью куда выше. Считается, что для объяснения дисперсии зависимых показателей от независимых точнее RDA, но для прогноза лучше PLS, которая является несколько смещённым вариантом RDA. Для представленного в посте набора достаточно одной компоненты, зависимость выглядит как S-образная загогулина, но достаточно близко к линии (делал не в R). К сожалению, пока сам разобрался с PLS не полностью, осваиваю. Но и детские болезни в пользовании R: не получается пока разбить data.frame на 2 списка в пределах одного набора data, чтобы назначить один X другой Y (типа как data(oliveoil) в пакете pls). Разберусь с PLS (в R - в частности) - отпишусь в эту ветку. Пока отхожу от шока: оказывается в хемометрии 5-10 образцов с десятками независимых и десятками зависимых показателей - не редкость. Так, что и без экстрасенсов 5 наблюдений может какбэ хватить... Сеть строить смысла нет, по крайней мере на практике используют варианты PLS. 1. Там прямо в pdf на странице пакета показано как в дата фрейм поместить две матрицы. 2. Это простые проекции данных (геометрия), все работает пока хватает размерности (даже в пределе, когда одна точка на размерность приходиться). То что это все кто то описывает как "распределения" ничего не значит для исходной постановки задачи. 3. Я не думаю что PLS в данном случае покажет что то лучше, тут зависимость и так предельно близка к линейной (s образность целиком вопрос единиц измерения у показателей). Но если сегодня не будут мешать попробую. PS результаты pls для двух компонент (чисто что бы графика была богаче, поскольку по нагрузкам там одна только) Сообщение отредактировал p2004r - 14.02.2017 - 10:31 |
|
14.02.2017 - 15:26
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
Для химических смесей бывают исключения, когда данные собрать просто дорого, а так если есть деньги, то хоть 500 млн наблюдений
Но я читаю книжку именно по бутстрепу. Кстати, вопрос к знающим, а Монте-Карло тут применим для моделирования? |
|
14.02.2017 - 15:27
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
и да приветствуются любые варианты кода, может из пазлов создам что то целое.
При это горе-моя голова забыла сказать, что рецепты разные бывают. плюс это ещё классификационная задача, но я её решу, разбив анализ на категории. Но тем не менее, а стоит ли и фактор рецепта включать, у меня их 50. 50. и у каждого свои наблюдения. Тоже по 5. Рецепты не водка, их лучше не объединять. бодяжить тут нельзя. Сообщение отредактировал Fedor_Petuhov - 14.02.2017 - 15:28 |
|
15.02.2017 - 10:07
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
у меня их 50. 50. и у каждого свои наблюдения. Тоже по 5. Ну вот когда всё вспомните и сформулируете техзадание (и форму оплаты за объем в техзадании ) можно и продолжить будет. |
|
15.02.2017 - 21:32
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 |
Тех задание не нужно. Непосредственно по программированию нейросети, сможете подсказать?
У нас 3 независ. пер, 1 пер это класс рецепта и зависимые переменные. Некоторые убрал Как с помощью функции predict, сделать так, чтобы, если я указал только класс химического состава, то программа показывает наиболее точное соотношение независимых и зависимых переменных? типа predict(a,mymodel) ## x1=100 ## x2=200 ## X3=400 ## Y1=101 ## y2=102 И да корректно ли так указывать категориальную переменную в зависимых? mydata <- <path to data> maxs <- apply(data, 2, max) mins <- apply(data, 2, min) scaled <- as.data.frame(scale(mydata, center = mins, scale = maxs - mins)) train_ <- scaled[index,] test_ <- scaled[-index,] library(neuralnet) neuralnet(y1+y2+y3+classvar~x1+x2+x3, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE)) |
|
15.02.2017 - 21:49
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 127 Регистрация: 15.12.2015 Пользователь №: 27760 |
neuralnet(y1+y2+y3+classvar~x1+x2+x3, infert, err.fct="ce", linear.output=FALSE, likelihood=TRUE)) Попробуйте, и нам расскажете. |
|
16.02.2017 - 13:47
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
И да корректно ли так указывать категориальную переменную в зависимых? Корректно. Но, если каждый рецепт "уникален", еще и "бессмысленно и беспощадно" Есть соответствующая техника называемая "Embedding". |
|