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

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

> Подскажите со стат.методом
Де бин Анатолий
сообщение 12.10.2017 - 13:33
Сообщение #1





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



Приветствую. help.gif, пожалуйста, мне тут метод выбрать в такой задаче.
У меня есть данные по 80 приборам, по каждому циклу, для каждого прибор, разные датчики дают указание. Как я могу предложить на основании этих данных, что прибор неисправен? Какой статистический метод я должен использовать?
Прибор считается вышедшим из строя, если больше измерений по нему нет. Например, есть измерения по циклам 1-151. Значит, что на 152 цикле прибор вышел из строя.

Может ли тут помочь анализ выживаемости?

Сообщение отредактировал Де бин Анатолий - 12.10.2017 - 18:09
Прикрепленные файлы
Прикрепленный файл  mydat.zip ( 586,63 килобайт ) Кол-во скачиваний: 280
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
Де бин Анатолий
сообщение 16.10.2017 - 12:41
Сообщение #2





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



Код
Это задача в целом стандартная и описывается паттерном "many to one". Решение тоже стандартное -- грузиться library(keras) и описывается сетка с LSTM (хот для такого размера выборки GRU) слоем который и сворачивает историю прибора в вектор стандартной длины. На выходе предиктор "авария есть -- аварии нет". На входе список с историями приборов + всякая его нормализация.

установил библиотечку keras
нашел в хелпе описание

Код
layer_conv_lstm_2d {keras}    R Documentation
Convolutional LSTM.

Description

It is similar to an LSTM layer, but the input transformations and recurrent transformations are both convolutional.

Usage

layer_conv_lstm_2d(object, filters, kernel_size, strides = c(1L, 1L),
  padding = "valid", data_format = NULL, dilation_rate = c(1L, 1L),
  activation = "tanh", recurrent_activation = "hard_sigmoid",
  use_bias = TRUE, kernel_initializer = "glorot_uniform",
  recurrent_initializer = "orthogonal", bias_initializer = "zeros",
  unit_forget_bias = TRUE, kernel_regularizer = NULL,
  recurrent_regularizer = NULL, bias_regularizer = NULL,
  activity_regularizer = NULL, kernel_constraint = NULL,
  recurrent_constraint = NULL, bias_constraint = NULL,
  return_sequences = FALSE, go_backwards = FALSE, stateful = FALSE,
  dropout = 0, recurrent_dropout = 0, batch_size = NULL, name = NULL,
  trainable = NULL, weights = NULL, input_shape = NULL)



А прикладного примера в хелпе нет, обычно он есть. Мне без него сложно перенести идею на мои данные.
в роле object
мой датасет должен быть?
setwd(mydir)
mydat=read.csv(mydat)

Сообщение отредактировал Де бин Анатолий - 16.10.2017 - 12:43
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 18.10.2017 - 16:03
Сообщение #3





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



Цитата(Де бин Анатолий @ 16.10.2017 - 12:41) *
Код
Это задача в целом стандартная и описывается паттерном "many to one". Решение тоже стандартное -- грузиться library(keras) и описывается сетка с LSTM (хот для такого размера выборки GRU) слоем который и сворачивает историю прибора в вектор стандартной длины. На выходе предиктор "авария есть -- аварии нет". На входе список с историями приборов + всякая его нормализация.

установил библиотечку keras
нашел в хелпе описание

Код
layer_conv_lstm_2d {keras}    R Documentation
Convolutional LSTM.

Description

It is similar to an LSTM layer, but the input transformations and recurrent transformations are both convolutional.

Usage

layer_conv_lstm_2d(object, filters, kernel_size, strides = c(1L, 1L),
  padding = "valid", data_format = NULL, dilation_rate = c(1L, 1L),
  activation = "tanh", recurrent_activation = "hard_sigmoid",
  use_bias = TRUE, kernel_initializer = "glorot_uniform",
  recurrent_initializer = "orthogonal", bias_initializer = "zeros",
  unit_forget_bias = TRUE, kernel_regularizer = NULL,
  recurrent_regularizer = NULL, bias_regularizer = NULL,
  activity_regularizer = NULL, kernel_constraint = NULL,
  recurrent_constraint = NULL, bias_constraint = NULL,
  return_sequences = FALSE, go_backwards = FALSE, stateful = FALSE,
  dropout = 0, recurrent_dropout = 0, batch_size = NULL, name = NULL,
  trainable = NULL, weights = NULL, input_shape = NULL)



А прикладного примера в хелпе нет, обычно он есть. Мне без него сложно перенести идею на мои данные.
в роле object
мой датасет должен быть?
setwd(mydir)
mydat=read.csv(mydat)




Массив входных данных вот как то так готовиться

Код
df.data <- read.csv2("mydat.csv")
library(dplyr)
library(keras)



data.list <- lapply(split(df.data, df.data$id), as.list)
pribor_order <- names(data.list)
names(data.list) <- NULL
data.list <- lapply(data.list, function(l) {names(l) <- NULL; l[5:25]})
data.list <- lapply(data.list, function(l) lapply(l, as.numeric))

data.list <- lapply(data.list, function(l) as.matrix(data.frame(l)))


В результате мы можем подготовить входные истории для GRU

Код
> str(pad_sequences(data.list))
int [1:80, 1:362, 1:21] 0 0 0 0 0 0 0 0 0 0 ...


максимальная история 362 события, остальные добиты "0" до той же длинны


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

Сообщений в этой теме


Добавить ответ в эту темуОткрыть тему