![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 29 Регистрация: 10.02.2017 Пользователь №: 29307 ![]() |
Здравствуйте, проконсультируйте, пожалуйста. Надеюсь здесь кто-нибудь знает R.
1. Какое минимальное количество наблюдений нужно, чтобы построить нейросеть? У меня 7 независимых переменных и 3 зависимых (все метрические). Между ними надо найти закономерности. Регрессия не вариант. Что-то КМД слабый. 2. Дело в том, что я работаю на производстве, где добывать данные крайне сложно, вернее дорого, там по-минимуму наблюдений. У меня в наборе всего 5 наблюдений. Есть ли какие-то хитрые способы грамотно и математически обосновано сгенерировать наблюдения для переменных, а уже потом строить нейросеть на них. Спасибо всем за помощь. |
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Разберусь с PLS (в R - в частности) - отпишусь в эту ветку. C PLS-регрессией по алгоритму NIPALS всё более-менее ясно. В примере топикстартера 93,3% дисперсии набора Х объясняют 47,9% дисперсии набора Y если брать только первую компоненту. Набор Х очень хорошо прогнозирует Y1 (коэффициент детерминации R2=0,946), Y2 (0,946) и Y3 (0,881) и безобразно Y4 (0,096) и Y6 (0,072). Даже если брать все три компоненты ситуация с Y4, Y5 и Y6 неважная (R2 около 0,15). Это значит, что для надёжного прогноза химии (Y) одной рецептуры (X) недостаточно, нужно учитывать ещё что-то (может физические факторы, продолжительность процесса и т.п.). В целом же и по одной компоненте весьма похоже прогнозируется: y1 y2 y3 y4 y5 y6 y7 103,3 -3,3 48,1 83,8 7,8 8,3 23,0 84,6 15,4 68,7 77,5 11,3 11,1 16,6 77,9 22,1 76,2 75,3 12,6 12,1 14,3 72,0 28,0 82,6 73,3 13,7 13,0 12,3 62,3 37,7 93,3 70,0 15,5 14,4 9,0 С R тоже есть прогресс, но пока он позволил только разочароваться в пакете pls: 1) результаты по алгоритму NIPALS (method="oscorespls") не совпадают с расчётами в других пакетах (Statistica, Tanagra) 2) результаты для 4 разных методов "kernelpls", "widekernelpls", "simpls", "oscorespls" дают одинаковые результаты (по крайней мере для этого примера) 3) для одной компоненты не может выдать summary (остальное считает): > res.nipals<-mvr(Y ~ X, ncomp = 1, method = "oscorespls", scale = TRUE) > summary(res.nipals) Data: X dimension: 5 3 Y dimension: 5 7 Fit method: oscorespls Number of components considered: 1 TRAINING: % variance explained Ошибка в dimnames(tbl) <- list(c("X", yvarnames), paste(1:object$ncomp, : длина 'dimnames' [1] не равна протяженности многомерной матрицы 4) вместо регрессионных коэффициентов предикторов пакет выдаёт их умноженными на стандартные отклонения предикторов. Буду смотреть другие пакеты с PLSR. Сообщение отредактировал nokh - 17.02.2017 - 00:18 |
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
C PLS-регрессией по алгоритму NIPALS всё более-менее ясно. В примере топикстартера 93,3% дисперсии набора Х объясняют 47,9% дисперсии набора Y если брать только первую компоненту. Набор Х очень хорошо прогнозирует Y1 (коэффициент детерминации R2=0,946), Y2 (0,946) и Y3 (0,881) и безобразно Y4 (0,096) и Y6 (0,072). Даже если брать все три компоненты ситуация с Y4, Y5 и Y6 неважная (R2 около 0,15). Это значит, что для надёжного прогноза химии (Y) одной рецептуры (X) недостаточно, нужно учитывать ещё что-то (может физические факторы, продолжительность процесса и т.п.). В целом же и по одной компоненте весьма похоже прогнозируется: y1 y2 y3 y4 y5 y6 y7 103,3 -3,3 48,1 83,8 7,8 8,3 23,0 84,6 15,4 68,7 77,5 11,3 11,1 16,6 77,9 22,1 76,2 75,3 12,6 12,1 14,3 72,0 28,0 82,6 73,3 13,7 13,0 12,3 62,3 37,7 93,3 70,0 15,5 14,4 9,0 С R тоже есть прогресс, но пока он позволил только разочароваться в пакете pls: 1) результаты по алгоритму NIPALS (method="oscorespls") не совпадают с расчётами в других пакетах (Statistica, Tanagra) 2) результаты для 4 разных методов "kernelpls", "widekernelpls", "simpls", "oscorespls" дают одинаковые результаты (по крайней мере для этого примера) 3) для одной компоненты не может выдать summary (остальное считает): > res.nipals<-mvr(Y ~ X, ncomp = 1, method = "oscorespls", scale = TRUE) > summary(res.nipals) Data: X dimension: 5 3 Y dimension: 5 7 Fit method: oscorespls Number of components considered: 1 TRAINING: % variance explained Ошибка в dimnames(tbl) <- list(c("X", yvarnames), paste(1:object$ncomp, : длина 'dimnames' [1] не равна протяженности многомерной матрицы 4) вместо регрессионных коэффициентов предикторов пакет выдаёт их умноженными на стандартные отклонения предикторов. Буду смотреть другие пакеты с PLSR. 1. тонко! пакету уже как бы 15 лет исполнилось, я бы у себя "в конфигурации" искал проблему в таком случае (ну или написал авторам на почту поддержки пакета если был бы уверен в проблеме) 2. и как удалось посмотреть _что_ считает статистика? исходный код есть? вот что вообще за вычисления делает статистика? в случае {pls} достаточно посмотреть в исходный код. не нравиться {pls} -- есть еще реализации, например https://cran.r-project.org/web/packages/matrixpls/index.html PS собственно вот http://stats.stackexchange.com/questions/2...data-not-equiv# Сообщение отредактировал p2004r - 18.02.2017 - 00:41 ![]() |
|
![]() |
![]() |
![]() ![]() |