statistics - 数据挖掘中的重要变量(数字):从哪里开始?

标签 statistics machine-learning data-mining rapidminer

我正在尝试改进外汇市场上的交易策略。

我有一个巨大的表(100k +行),代表市场上每种可能的交易,交易类型(买或卖),该交易结束后的盈亏,以及10多个左右的变量,分别代表贸易开放时间。

我试图找出这10个变量中的任何一个是否与利润/亏损没有重大关系。

例如,假设变量X的范围是50到-50。
购买订单的X平均值为25,销售订单的X平均值为-25。

如果大多数获利的买单的价值X> 25,而大多数获利的卖单的价值X <-25,则我认为X与获利的关系很重要。

我想要一个很好的起点。我已经安装了RapidMiner 5,以防有人可以给我一个具体的建议。

最佳答案

决策树也许是最好的起点。

树本身是功能重要性排名(或OP中所用的重要变量)的直观摘要。


为您提供整个视觉效果
   分类/回归分析(以二叉树的形式),
   这使其与任何其他分析/统计数据区分开来
   我知道的技术;
决策树算法需要对数据进行很少的预处理,无需规范化,无需重新缩放,无需将离散变量转换为整数(例如,Male / Female => 0/1);它们既可以接受分类变量(离散变量),也可以接受连续变量,并且许多实现都可以处理不完整的数据(数据矩阵中某些行缺少的值);和
再次,树本身是功能重要性排名的视觉摘要
(即重要变量)-最重要的变量是
根节点,并且比两个子节点(在
比他们的四个孩子更重要。这里的“显着性”是指所解释的方差百分比(相对于某些响应变量,也称为“目标变量”或事物)
您正在尝试预测)。一个条件:从目视检查
不能从中区分变量重要性的决策树
在相同等级的节点之间。


如果您以前从未使用过它们,那么以下是决策树的工作原理:该算法将遍历数据中的每个变量(列)以及每个变量的每个值,然后根据每个值将数据分为两个子集。这些分割中的哪一个实际上是由算法选择的-即分割标准是什么?选择最“纯化”数据最多(即,最大化信息增益)的特定变量/值组合来拆分数据(该变量/值组合通常表示为节点的标签)。只是递归地执行这种简单的试探法,直到剩余的数据子集是纯净的,或者进一步拆分不会增加信息增益。

这如何告诉您数据集中变量的“重要性”?重要性的高低由与根节点的接近程度来表示-即层次级别或等级。

一个建议:决策树通常可以毫无问题地处理分类数据和离散数据。但是,以我的经验来看,如果响应变量(您尝试使用所有其他变量预测的变量)是离散的/分类的而不是连续的,则决策树算法始终会表现更好。看来您的可能是连续的,在这种情况下,应考虑离散化(除非这样做只会使整个分析变得毫无意义)。为此,只需使用对问题域有意义的参数(bin大小,bin数和bin边)对响应变量值进行装箱(例如,如果r / v由1的“连续值”组成)到100,则可以明智地将它们分为5个档位,分别为0-20、21-40、41-60,依此类推。

例如,从您的问题中,假设数据中的一个变量是X,并且它有5个值(10、20、25、50、100);还假设将您的数据与第三个值(25)分开会产生两个几乎纯的子集-一个低值和一个高值。只要此纯度高于通过拆分其他值获得的子集,数据将在该变量/值对上拆分。

RapidMiner确实确实有一个决策树实现,并且似乎网上有很多教程(例如,来自YouTube,herehere的教程)。 (请注意,我没有使用R / M中的决策树模块,也没有使用RapidMiner。)

我会考虑的另一组技术通常归类于“降维”。在D / R之后,特征提取和特征选择可能是两个最常见的术语。使用最广泛的是PCA或主成分分析,它基于协方差矩阵(源自数据矩阵)的特征向量分解。

此特征向量分解的一个直接结果是每个特征向量所占数据的可变性分数。只需根据此结果,您就可以确定需要多少维来解释数据,例如,数据中95%的可变性

如果RapidMiner具有PCA或其他功能相似的降维技术,则在何处找不到它。我确实知道RapidMiner具有R扩展名,当然您可以通过它在RapidMiner中访问R。R具有许多PCA库(软件包)。我在下面提到的那些都可以在CRAN上找到,这意味着那里的任何PCA软件包都满足文档和小插图(代码示例)的最低软件包要求。我可以推荐pcaPP(Projection Pursuit的稳健PCA)。

此外,我可以推荐有关PCA的两个出色的分步教程。第一个来自NIST Engineering Statistics Handbook。第二个是用于独立组件分析(ICA)的tutorial而不是PCA,但是我在这里提到它是因为这是一个很好的教程,并且这两种技术都用于类似的目的。

关于statistics - 数据挖掘中的重要变量(数字):从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545962/

相关文章:

R/tidyverse : calculating standard deviation across rows

wordpress - 如何在 Wordpress JetPack 中查询帖子的浏览次数?

python-3.x - 无法在 Windows 10 中运行 Tensorflow

python - 有没有办法在 python 中使用 opencv 获得更清晰和连续的边缘?

image-processing - HOG特征中需要对图像进行重新采样吗?

python - 缩放数据会降低聚类的质量

opencv - 如何加快openCV中的颜色聚类?

asp.net - 如何记录和分析我网站上的某些用户操作

python-3.x - 基于趋势值的数据操纵

r - 当 R 中的卡方检验生成警告时,如何执行 Fisher 精确检验 `fisher.test()`?