Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Подскажите с нейросетью
Fedor_Petuhov
сообщение 10.02.2017 - 17:49
Сообщение #1





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R.
1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические).
Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый.
2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них.
Спасибо всем за помощь.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 11.02.2017 - 19:59
Сообщение #2





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Цитата(Fedor_Petuhov @ 10.02.2017 - 16:49) *
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R.
1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические).
Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый.
2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них.
Спасибо всем за помощь.

Добрый день.
К сожалению, информация, которую Вы предоставили, крайне скудна, что-бы по ней можно было давать какие-то рекомендации.
1. Итак, что Вы реально сообщили: имеется 7+3 переменных и 5 (ПЯТЬ!!!!) наблюдений. При этом "регрессия - не вариант". Я так понял, вы строите три регрессионные модели в каждой из которых 7 независимы и одна зависимая переменная. По пяти точкам! И получаете большую ошибку предсказания. Т.е. это не метод плох, это у Вас нет необходимой информации, для корректного построения модели выбранного типа. Вопрос - каким боком может помочь всемогущая нейронная сеть, если информации нет в самих данных? Может, просто взять нелинейную регрессионную модель? (Просто ради примера, что-бы было понятно - нейронная сеть без промежуточных слоев, содержащая только линейные элементы и обучаемая с помощью линейной оптимизации есть ни что иное, как традиционная регрессионная модель, та самая, которая у Вас "не сработала").
2. Непонятно, какую вообще задачу Вы ставите. Мы не знаем, и даже не можем догадаться. Может - вы хотите выполнить задачу классификации? Или кластеризации? Или предикативный анализ?? В любой постановке при Ваших данных (я имею ввиду их мизерное количество) можно попытаться применить методы, которые используются в соответствующих разделах Data Science без привлечения ИНС, причем в вашем случае эти методы могут сработать гораздо эффективнее. Другой вопрос - точность, которую Вы получите, но тут уж что есть. Хотите точности - ищите дополнительные данные.
3. Имея 5 замеров в 8-мерном пространстве измерения надеяться на "способы грамотно и математически обосновано сгенерировать наблюдения" - не приходится.
4. "Какое минимальное количество наблюдений нужно, чтобы построить нейросеть?" - ответ совершенно очевиден - чем больше, чем лучше. Именно там, где данных слишком много и "традиционные методы" просто захлебываются, имеет смысл применять ИНС. (см. выше пример с линейной регрессией).
5. Вообще непонятно, каким боком тут знания R, но да, сильно подозреваю, что тут есть "кто-нибудь", не просто знающий, но и использующий R.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Fedor_Petuhov
сообщение 12.02.2017 - 13:18
Сообщение #3





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта
3. Ну приблизительно, аппроксимация повсюду:)
4. я понял, что нужно очень много
5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам.

В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 12.02.2017 - 15:14
Сообщение #4





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Цитата(Fedor_Petuhov @ 12.02.2017 - 12:18) *
1. Виноват. Второпях перепутал. 3 независ , 7 завис. переменных. Простите
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта
3. Ну приблизительно, аппроксимация повсюду:)
4. я понял, что нужно очень много
5. коварный R нужен, потому что я на нем буду все делать, а далее именно он будет внедрен в производство для контроля. Это уже вопрос к программерам.

В таком случае мне нужно только подсказка по 3 вопросу. пусть и с аппроксимацией


Есть такая книга "В.К. Шитиков, Г.С. Розенберг. Рандомизация и бутстреп: статистический анализ в биологии и экологии с использованием R". Попробуйте посмотреть. Думаю, найдете там много чего интересного и полезного на будущее. И по теме "как хитрым способом грамотно и математически обосновано сгенерировать наблюдения для переменных" и по теме "R" (за одно и некоторые иллюзии развеете rolleyes.gif ).. Но при имеющейся исходной выборке в пять точек рассчитывать на какие-то серьезные результаты в Вашем случае я бы не стал. А смотрел бы в первую очередь в сторону нелинейной регрессии.
P.S. Кстати, зачем Вам R я так и не понял. При пяти точках и трех переменных - достаточно EXCEL. Или даже калькулятора biggrin.gif

Сообщение отредактировал passant - 12.02.2017 - 15:28
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 12.02.2017 - 18:13
Сообщение #5





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(Fedor_Petuhov @ 12.02.2017 - 15:18) *
2. Т.о. зная 3 физических показателя нужно предсказать выходные, а именно химические компоненты продукта

Для таких задач в хемометрии традиционно применяются варианты PLS-регрессии. Погуглите на темы PLS in chemometrics, PLS in R.
Вот первый попавшийся пакет: ftp://cran.r-project.org/pub/R/web/packag...cs-vignette.pdf
Методы и пакеты требуют данных. Может лучше экстрасенс?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Fedor_Petuhov
сообщение 12.02.2017 - 20:08
Сообщение #6





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



Без экстрасенсов и прочих жуликов:) Только чистые данные))
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 13.02.2017 - 11:37
Сообщение #7





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Fedor_Petuhov @ 12.02.2017 - 20:08) *
Без экстрасенсов и прочих жуликов:) Только чистые данные))


Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут...

А так, 4 точки на одной линии лежат. Но надо понимать, что размерности хватит только для предсказания некого "агрегата по y" (ну "изоповерхность" нарисовать не более).

Сообщение отредактировал p2004r - 13.02.2017 - 11:48
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 14.02.2017 - 08:14
Сообщение #8





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(p2004r @ 13.02.2017 - 13:37) *
Резко выпадает пятая точка, пока "вокруг неё" нет подтверждающих любые модели очень слабы получаться будут...

Не факт. В 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 14.02.2017 - 08:37
Сообщение #9





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(nokh @ 14.02.2017 - 08:14) *
Не факт. В 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
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Fedor_Petuhov
сообщение 14.02.2017 - 15:26
Сообщение #10





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



Для химических смесей бывают исключения, когда данные собрать просто дорого, а так если есть деньги, то хоть 500 млн наблюдений
Но я читаю книжку именно по бутстрепу.
Кстати, вопрос к знающим, а Монте-Карло тут применим для моделирования?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Fedor_Petuhov
сообщение 14.02.2017 - 15:27
Сообщение #11





Группа: Пользователи
Сообщений: 29
Регистрация: 10.02.2017
Пользователь №: 29307



и да приветствуются любые варианты кода, может из пазлов создам что то целое.
При это горе-моя голова забыла сказать, что рецепты разные бывают. плюс это ещё классификационная задача, но я её решу, разбив анализ на категории. Но тем не менее, а стоит ли и фактор рецепта включать, у меня их 50.
50. и у каждого свои наблюдения. Тоже по 5.
Рецепты не водка, их лучше не объединять. бодяжить тут нельзя.

Сообщение отредактировал Fedor_Petuhov - 14.02.2017 - 15:28
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 15.02.2017 - 10:07
Сообщение #12





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Fedor_Petuhov @ 14.02.2017 - 15:27) *
у меня их 50.
50. и у каждого свои наблюдения. Тоже по 5.


Ну вот когда всё вспомните и сформулируете техзадание (и форму оплаты за объем в техзадании smile.gif ) можно и продолжить будет.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Fedor_Petuhov
сообщение 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))

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
ogurtsov
сообщение 15.02.2017 - 21:49
Сообщение #14





Группа: Пользователи
Сообщений: 127
Регистрация: 15.12.2015
Пользователь №: 27760



Цитата(Fedor_Petuhov @ 15.02.2017 - 22:32) *
neuralnet(y1+y2+y3+classvar~x1+x2+x3, infert,
err.fct="ce", linear.output=FALSE, likelihood=TRUE))


Попробуйте, и нам расскажете.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 16.02.2017 - 13:47
Сообщение #15





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(Fedor_Petuhov @ 15.02.2017 - 21:32) *
И да корректно ли так указывать категориальную переменную в зависимых?


Корректно. Но, если каждый рецепт "уникален", еще и "бессмысленно и беспощадно" smile.gif

Есть соответствующая техника называемая "Embedding".


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему