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

 

谁能用简单而准确的语言向我解释一下,RF是用什么原理来建立预测因子的重要性等级的?

我有一个集子,目标类中有两个类,一个类中的观察值比第二个类中的观察值多几百倍,我记得在某个地方,RF中判断原告重要性的标准之一是某个观察值出现的频率。

所以我想知道,在计算预测因子的重要性时,RF是否会抑制观察值较少的那一类。

 
有趣的文章,或者说那里没有文章,关于非线性 "pca "的有趣图片) https://imdevsoftware.wordpress.com/tag/non-linear-pca/
Discriminating Between Iris Species
Discriminating Between Iris Species
  • imdevsoftware.wordpress.com
The Iris data set is a famous for its use to compare unsupervised classifiers. The goal is to use information about flower characteristics to accurately classify the 3 species of Iris. We can look at scatter plots of the 4 variables in the data set and see that no single variable nor bivariate combination can achieve this. One approach to...
 
mytarmailS:

我假设你是做外汇的,外汇中没有经纪人,他们不做交易,他们是基于博彩公司的文件业务。

p.s. 你认为我对性状选择的建议如何?

嗯,是的,一个交易中心不是一个经纪人。但无论如何没有人取消他们进入银行间市场的资格。

你的选择似乎很合理。但我已经决定不按照我的概念选择指标,因为它从未改善过模型。我宁愿让算法选择许多指标,让它决定什么是好的,什么是不好的。有时移动平均线 也会进入最后一组预测指标,我认为它们可能不是单独提供一些信息,而是与其他指标结合在一起。但我的结果还不稳定,我还不能保证其有用性。
我也不会试图准确预测逆转,在训练数据中,"一切照旧 "类的案例会比 "逆转 "类多几十倍,他们说训练的类的比例最好是50/50。

 
桑桑尼茨-弗门科

我有一个算法,可以确定一个预测器对一个特定目标变量的预测能力。简而言之,就是震荡器和不同的增量。如果一个特定的预测器对一个特定的目标变量有预测能力,并不意味着它对另一个目标变量也有预测能力。此外,一个预测器可能在一个窗口有预测能力,而在另一个窗口没有。

该算法运行良好。它所选择的预测因子不会导致模型的过度拟合。

PS

根据我的算法,任何类型的单据都没有预测能力,虽然听起来很荒谬。

所有有任何数据集的模型都要重新训练。

另一个问题是,在正确选择、转换预测因子的情况下,过度训练的概率大大降低。

过度训练的概率同样取决于数据集和模型的类型。

没有必要产生幻想。

看看pbo包,看看那里是如何处理这个问题的,很有意思

祝好运

 
弗拉基米尔-佩雷文科

所有具有任何数据集的模型都可以被重新训练。

另一个问题是,在正确的选择下,过度学习的概率,转换预测器的概率大大降低。

过度训练的概率同样取决于数据集和模型的类型。

不需要幻觉。

看一下pbo包,那里看起来很有趣

祝好运

看了看。基本假设一点也不清楚。特别是 "观察次数的增加会导致过度训练"?

我使用了一个完全明确的,而且最重要的,具有实际价值的标准。

我已经多次说过它的本质。我将重复一遍。

我使用以下的过度训练(过度拟合)标准:如果训练期间的误差 等于训练样本以外的其他数据上的误差,即其他时间间隔上的误差,那么模型就是过度训练。也就是说,模型在训练过程中捡到了一些在随后的时间间隔内没有遇到的具体情况。

如何在实践中实施。

我们取一个商数,例如10,000巴。

我们机械地按条数划分,没有任何奢侈,这对我来说非常重要,因为在实践中,它会像这样,而不是像那样。

因此,我从1号到7000号的第一个小节。这些条形图用于学习测试和验证。为了把它们分成三组,我使用了,比如说,样本或者是内置在模型本身的。

我从模型中得到三个数字。如果不对模型进行重新训练,这些数字大致相等。

然后是最重要的事情。

我拿了一个有7001到10 000条的文件。而我使用的是在之前的条形图上训练的模型。我得到一个错误。如果误差与前三者略有不同,那么模型就不会 被重新训练。我通常认为,如果差异在15-20%,那么就不能再训练。如果其中一个数字与其他任何数字相差超过50%,那么该模型将被重新训练。

因此,用我的方法,我从一些预测器的集合中选择一些预测器的子集。如果发现,这不是必须的,那么像Randomforest、SVM、ada和它们的变种这样的模型就不会 被重新训练。我不知道其他模型--我没有使用它们。

这不是一个幻觉。这是一个事实。

 
mytarmailS:

谁能用简单而准确的语言向我解释一下,RF是用什么原理来建立预测因子的重要性等级的?

我有一个集子,目标类中有两个类,一个类中的观察值比第二个类中的观察值多几百倍,我记得在某个地方,RF中判断原告重要性的标准之一是某个观察值出现的频率。

所以我想知道,在计算预测因子的重要性时,RF是否会抑制观察值较少的那一类。

你有疯狂的不平衡的班级,这不是好事。有平衡类的算法,但在你的情况下,它对我不起作用。我试图不是用一个条形数字来表示ZZ的反转,而是用几个条形数字,在反转之前和之后。这减少了不平衡,但没有解决这个问题。

我还没有找到能保证在不平衡类上工作的模型。

 
桑桑尼茨-弗门科

你有疯狂的不平衡的类,这不是好事。有平衡类的算法,但在你的情况下,它没有发挥作用。我试图不是用一个条形数字来标记ZZ的反转,而是用几个条形数字来标记,在反转之前和之后。这减少了不平衡,但没有解决这个问题。

我还没有找到能保证在不平衡类上工作的模型。

我对特征选择问题感兴趣
 
mytarmailS:
我对有关特征选择的问题感兴趣

我已经回答了我认为必要的一切。

如果你有一组带有目标变量的属性,把它发给我,我会选择它,然后在所选的属性上建立模型,看看结果如何

 
有人尝试过使用非线性PCA吗? 我在上面留了一个链接,但我在用它识别新数据时遇到了麻烦,它给出了一个错误。
 
mytarmailS:
没有人尝试过应用非线性PCA吗? 我在上面留下的链接,我没有运气用它来识别新数据,它给出了一个错误

我不认为这个软件包足以建立一个能够预测目标变量的模型。我在帮助中所发现的是建立一个基于预测因子的PCA模型,目标变量根本就不存在。

#установка  пакета, нужно выполнить один раз и перезапустить R
source("https://bioconductor.org/biocLite.R")
biocLite("pcaMethods")        

#создание  pca объекта
library(pcaMethods)
browseVignettes("pcaMethods") #хелп  файлы
data(metaboliteDataComplete)
mdC <- prep(metaboliteDataComplete, scale="none", center=TRUE)
resNipals <- pca(md, method="nipals", center=FALSE, nPcs=5)

这将创建一个resNipals(通过迭代局部最小二乘法的非线性估计)对象,该对象有5个主要组成部分,用于分析代谢物DataComplete表。你可以用自己的预测表代替metaboliteDataComplete,而不是用预测器代替。重要的是不要在这里输入目标变量,它将在后面使用。

但这只够通过检查不同的图表来分析变量之间的关系。为了建立一个预测模型,然后建立一个线性回归 模型,使用主要成分PC1,PC2,PC3,PC4,PC5作为输入变量(x1,x2,x3,...)。而目标变量Y已经作为期望的结果被送入线性模型。问题是,resNipals是包pcaMethods中 "pcaRes "类的某个对象。我在帮助中找不到如何用它做这些事。

如果这是一个来自caret软件包的PCA模型,它将会是这样的。

#http://www.win-vector.com/blog/2016/05/pcr_part2_yaware/ (раздел Is this the same as caret::preProcess?)
newVars <- colnames(resNipals)
resNipals$y <- dTrain$y   #"y" в данном случае это название колонки с целевой переменной, dTrain - исходная таблица с данными
modelB <- lm(paste('y',paste(newVars,collapse=' + '),sep=' ~ '),data=resNipals)
print(summary(modelB)$r.squared)
#дальше нужно использовать функцию predict(modelB, newdata = <таблица с валидационной выборкой>) для прогноза на новых данных

但它不能与resNipals一起工作,理论上讲,pcaMethods包应该有一些自己的函数来处理这个对象,但我没有找到任何东西。