交易中的机器学习:理论、模型、实践和算法交易 - 页 233

 
弗拉基米尔-佩雷文科

我没有得到好的结果。你需要高度相关的预测因子(与其他模型不同)。

我没能找到任何能带来可接受结果的东西。不过我已经很久没有做实验了。我没有太多的时间。你可以试试。该样本有一个完全工作的代码。

祝好运

PS。如果你试一下,在输入矩阵中,预测因子应该是行而不是列。

谢谢,但不幸的是,我现在从事的是一个完全不同的,在不久的将来就是坐不住了,我遇到了一个工作方法,但都还是生手,研究刚刚开始,我觉得会拖很久,很多工作...

另一个问题,不要打我)在没有老师的情况下,是否可以在训练中使用 标准的 MO包、forrests、nets、vector、convolutions等?

我怀疑你可以,但我还没有弄清楚如何做到这一点。

例如,在弗雷斯特

data("iris")

library(randomForest)

label <- factor(iris$Species)
set <- iris[,-ncol(iris)]


model <- randomForest(x = set,data = set , mtry=4, ntree=20)

我想我是在没有老师的情况下教的。

根据谷歌翻译---->无监督 分类

> model

Call:
randomForest(x = set, ntree = 20, mtry = 4, data = set)
               Type of random forest: unsupervised
                     Number of trees: 20
No. of variables tried at each split: 4

但如何识别?))

predict(model , set[1,])



Error in predict.randomForest(model, set[1, ]) :
  No forest component in the object


你能帮我解决这个问题吗?

 
mytarmailS:

谢谢你,但不幸的是,我现在正在做一些完全不同的事情,我将有一段时间不能坐着,我已经找到了一个工作方法,但它仍然是原始的,研究刚刚开始,我觉得这将需要很长一段时间,有很多工作要做...

另一个问题,不要打我)在没有老师的情况下,是否可以在训练中使用 标准的 MO包、forrests、nets、vector、convolutions等?

我怀疑你可以,但我还没有弄清楚如何做到这一点。

例如,在弗雷斯特

data("iris")

library(randomForest)

label <- factor(iris$Species)
set <- iris[,-ncol(iris)]


model <- randomForest(x = set,data = set , mtry=4, ntree=20)

我想我是在没有老师的情况下教的。

根据谷歌翻译---->无监督 分类

> model

Call:
randomForest(x = set, ntree = 20, mtry = 4, data = set)
               Type of random forest: unsupervised
                     Number of trees: 20
No. of variables tried at each split: 4

但如何识别?))

predict(model , set[1,])



Error in predict.randomForest(model, set[1, ]) :
  No forest component in the object


你是否有办法为我澄清这个问题?

================================================

我强烈建议你使用RandomUniformForest。那里有很多其他 "脚手架 "不具备的功能。特别是在无监督学习方面。

用随机统一森林进行无监督学习

描述

随机统一森林的无监督模式是为了在所有情况下提供聚类、降维、简易可视化、深层变量重要性、观察值、变量和聚类之间的关系。它还带有两个具体的要点:简易评估(聚类分析)和动态聚类,允许即时改变任何聚类形状。使用了一个三层引擎:异质性矩阵、多维缩放(MDS)或光谱分解、以及K-means或分层聚类。无监督模式不需要知道聚类的数量,这要归功于差距统计,并且继承了监督模式的主要算法特性,允许(几乎)任何类型的变量。

祝好运

 
Vladimir Perervenko:

是的,一般的问题是,是否有可能在没有老师的情况下教授所有这些流行的MOE包 - randomforest , nnet , svm ......。等等

福里斯特,只是把它作为一个例子......

实际上,我想训练一个 没有老师的卷积网络

 
mytarmailS:

是的,问题是一般性的,所有这些流行的MOE包--Randomforest , nnet , svm ...... 可以在没有老师的情况下教授吗?等等

福里斯特,只是把它作为一个例子......

实际上,我想教的是卷积网络,没有老师。

你想教它什么?

它背后的想法是什么?

我只知道这些模型可以在没有老师的情况下教它:AutoEncoder、RBM、不同品种的RF、聚类模型。但卷积式的是不可能的...

祝好运

 
Vladimir Perervenko:

你想教她什么?

这个想法是什么?

我只知道这些无师自通的学习模型:AutoEncoder、RBM、不同种类的RF、聚类模型。但卷积的是不可能的...

祝好运

嗯,因为卷积网络 可以检测到在形式上仍然略有不同的类似模式,这使得它与传统的 "线性 "MO不同。

如Forrest,一般网络等......

而我想在没有老师的情况下进行教学,因为首先把它分解成几个群组,比如 "自然地,通过相似性",然后与目标相匹配,这比立即用目标进行教学,并根据目标创造/适应群组要好得多。

我写过关于集群的想法,对于我的目标来说,它确实比任何传统的MO更好用,如果你读...

这一切还有一个问题,那就是市场上没有任何情况是完全相同的,这是非平稳性的,在这里我看到两种方式,要么是卷积网络或DTW算法,要么是某种插值或外推法,甚至不知道其确切名称。

这个想法是为了使集群对非平稳性有更强的适应性。

 

请帮助我理解...

有一个这样的代码。

#есть вектор с некими нужными событиями "999" и не нужными "0"

X <- rep(0,1000)
Y <- rep(999,100)

dat <- sample(c(X, Y))
dat
> dat
   [1]   0 999   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
  [28]   0   0   0 999 999   0   0   0   0   0   0   0   0   0   0 999   0   0   0   0   0   0   0   0   0 999   0
  [55]   0   0   0   0 999   0   0   0   0   0 999   0   0   0   0   0 999   0   0   0   0   0   0   0   0   0   0
  [82]   0   0   0   0   0   0   0   0 999   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
[109]   0   0   0   0   0   0   0   0 999   0   0   0 999   0   0   0   0   0   0   0   0   0   0   0   0   0   0
[136]   0   0   0   0   0   0   0 999   0   0   0   0   0 999   0 999   0   0   0   0   0   0   0   0   0   0   0

#///в каждой итерации цыкла я хочу видеть последние три нуждые события те когда было "999"

for(i in 101:length(dat)){
    
      idx <- 1:i
      
                  s1 <- dat[idx]
                  s2 <- which(s1!=0)  # s2 - получаем индексы нужного события те когда s1 было не ноль
                  s3 <- tail(s2,3)    # оставляем три поледних индекса
                  
                  print(  dat[s3]   )
                  
}

[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999
[1] 999 999 999

一切都很好,一切都在工作,但线路上有一个问题。

idx <- 1:i

在每一次迭代中,idx 向量都会增加,如果有大量的数据,那么代码就会变得非常慢,当然,越往后走就越慢。

我以一种简单的方式解决了这个问题--在每次迭代中,只取向量的最后100个值,而不是全部的

idx <- (i-100):i

for(i in 101:length(dat)){
    

      idx <- (i-100):i # последние 100 значени  вместо idx <- 1:i
      
                  s1 <- dat[idx]
                  s2 <- which(s1!=0)  # s2 - получаем индексы нужного события те когда s1 было не ноль
                  s3 <- tail(s2,3)    # оставляем три поледних индекса
                  
                  print(  dat[s3]   )
                  
}

但这段代码的输出看起来已经很混乱了

[1] 0 0 0
[1] 0 0 0
[1] 0 0 0
[1] 0 0 0
[1] 0 0 0
[1] 0 0 0
[1] 999   0   0
[1] 0 0 0
[1]   0   0 999
[1] 999   0   0
[1] 0 0 0
[1] 0 0 0

到底是什么问题? 一切似乎都是正确的,是不是有一个错误或什么?

 
不解的是?:), 显然...
 

mytarmailS:


这到底是怎么回事? 没事的,是错误还是什么?

这叫 "内衣",就像你无耻地把你的内衣塞到女士们和先生们的脸上,而这对你周围的人来说是不合适的。最好是藏起你的内衣。比如说,你见过尼古拉-科西岑或雷谢托夫,展示他的内衣吗?
 
pantural

这实际上被称为 "有一个错误,但没有如何重现它的例子"。你需要一个有100多列的特殊表格,然后它就会出问题。而这个例子是一小块表,你不能在上面检查任何东西,而且也是通过文本而不是通过RData文件。

纯粹是随机的--我认为错误是在索引中。
如果你将s1相对于dat表的开头移动(i-100)-1,那么当你用获得的新索引再次访问dat时,应该考虑到这个移动。最后一行应该是print(dat[i-101+s3])。它可能是100而不是101。或102。在这些数字的某处 :)

 

pantural
这叫 "内衣",就像你无耻地把你的内衣戳到女士和先生们的脸上,而这对你周围的人来说并不合适。最好是藏起你的内衣。例如,你见过尼古拉-科西岑或雷谢托夫展示他们的内裤吗?

========================

你可以说这是一个 "恶搞",但在R社区,在提出问题时引用可重复的代码是一种习惯。而这是正确的。没有引用代码的故事是空话。这个主题的目的是用国防部的例子进行教学。

为什么你要为你周围的人报名?没有必要制定规则,没有人授权你这样做。

所有的权利做mytarmailS和其他参与者谁给代码的例子,许多人可以学习一些有用的东西为自己。

原因: