Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 640

 
Mihail Marchukajtes:


Если серьезно - прошу не суетиться, Михаил. Момент ответственный. Если эта идея, неважно по какой причине (криворукости ли, или полнейшего одубения перед открывшимися возможностями) не проканает, то следующая такая снизойдет на сообщество трейдеров весьма и весьма нескоро. Абсолютно в этом уверен.

 
Mihail Marchukajtes:

Держите меня семеро!!!! И отметьте этот день в календаре красным карандашом, потому как именно сегодня и скачал R и буду крутить его потихоньку..

На Сенсей, подгон от пацанов))) h2o.automl.

Погремуха средненькая, но все на автомате...

 
Vizard_:
Старый Фа стоял во фруктовом саду. Перед ним раскинулось апельсиновое дерево. Повсюду, хаотично, летали птички.
Птички не садились на апельсиновое дерево и он думал что фрукты ядовиты. Ему бы сделать шаг в сторону и увидеть
стоящую за апельсиновым деревом яблоню, где на плоды и пара, а то и больше из хаотично летающих вокруг птичек
обязательно сядет... Но он так и продолжал стоять на одном месте... Голодный, истощенный, подавленный...
К концу шестого года показалось Ху Джоу,что проник он в самую суть охотничьего мастерства. Ибо не добыча, а само понятие стало для него главным... (с)
	          
 

http://playground.tensorflow.org

визуализация обучения НС, похоже просто развлекаловка или как учебный пример

что-то у нее явные проблемы с классификацией спиральки :)


Tensorflow — Neural Network Playground
Tensorflow — Neural Network Playground
  • Daniel Smilkov and Shan Carter
  • playground.tensorflow.org
It’s a technique for building a computer program that learns from data. It is based very loosely on how we think the human brain works. First, a collection of software “neurons” are created and connected together, allowing them to send messages to each other. Next, the network is asked to solve a problem, which it attempts to do over and over...
 

А такая архитектура уже может

это прям по Пуанкаре - если пространство признаков несвязное то нужно минимум 2 слоя, здесь уже был вопрос про это от elibrarius


 
Maxim Dmitrievsky:

А такая архитектура уже может


Максим, а как же отбор признаков? Ай-яй-яй.
Так же скорость обучения делай меньше, когда начинает вибрировать сеть.

Прошлым летом игрался с этой штукой. Очень наглядная вещь.)
 
Aleksey Terentev:
Максим, а как же отбор признаков? Ай-яй-яй.
Так же скорость обучения делай меньше, когда начинает вибрировать сеть.

Прошлым летом игрался с этой штукой. Очень наглядная вещь.)

ну да, если синусы поставить то и с 1 слоем может 

 

С EMVC того что хотел не вышло, пакет делает не то что показалось при беглом чтении описания.

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

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

Зато получился интересный инструмент для отсева не предикторов, а обучающих примеров.


library(EMVC)
data(iris)


trainTable <- iris #таблица на которой в дальнейшем будет обучаться какая-то модель
PREDICTOR_COLUMNS_SEQ <- 1:4 #номера колонок с предикторами
TARGET_COLUMN_ID <- 5 #номер колонки с таргетом

EMVC_MIN_TRUST <- 0.9 #минимально допустимая вероятность принадлежности к классу посчитанная через emcv. От 0 до 1.

emvcData <- t(as.matrix(trainTable[,PREDICTOR_COLUMNS_SEQ]))
emvcAnnotations <- as.numeric(trainTable[,TARGET_COLUMN_ID])
emvcAnnotationsUnique <- unique(emvcAnnotations)
emvcAnnotationsMatrix <- matrix(0, ncol=ncol(emvcData), nrow = length(emvcAnnotationsUnique))
for(i in 1:length(emvcAnnotationsUnique)){
  emvcAnnotationsMatrix[i, emvcAnnotations == emvcAnnotationsUnique[i]] <- 1
}

set.seed(0)
emvcResult <- EMVC(data = emvcData,
                   annotations = emvcAnnotationsMatrix,
                   # bootstrap.iter = 20,
                   k.range = 2
                   # clust.method = "kmeans",
                   # kmeans.nstart = 1,
                   # kmeans.iter.max = 10,
                   # hclust.method = "average",
                   # hclust.cor.method = "spearman"
)

badSamples <- c()
for(i in 1:ncol(emvcResult)){
  if(max(emvcResult[,i])<EMVC_MIN_TRUST){
    badSamples <- c(badSamples, i)
  }
}
cat("Indexes of bad train samples:", badSamples,"\n") #Это номера строк в обучающей табличке которые повышают кросс-энтропию данных. Они противоречат большинству других обучающих примеров, и возможно следует их удалить из обучающей таблички
trainTable <- trainTable[-badSamples,]

 
Dr. Trader:

С EMVC того что хотел не вышло, пакет делает не то что показалось при беглом чтении описания.

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

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

Зато получился интересный инструмент для отсева не предикторов, а обучающих примеров.


Жаль. 

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

 
Dr. Trader:
Можно таким образом найти строки в обучающей таблице которые противоречат большинству других обучающих примеров (выбросы, ошибки), и убрать их чтобы не путать модель при обучении.

А нужно ли это на форекс данных, где закономерности сложно найти? Мне кажется можно отсеять половину примеров такой программой. А выбросы можно более простыми спсобами искать: и не удалять, а например приравнивать к допустимому максимуму.

Причина обращения: