[解决]海量数据集上的平均互信息/相关矩阵

qwertz2qwertz2 成员职位:49大师
2018年11月编辑 帮助


亲爱的社区,

这是一个庞大的数据集,包含数千个常规属性和一个标签。主要目标是获得一个包含两列的列表,分别显示1)属性的名称和2)平均互信息(与标签相关)。

由于有如此多的属性,平均互信息矩阵速度很慢,并且消耗内存。所以我想研究一个子集。这样我就可以计算label和att1,然后是label和att2,然后是label和…循环遍历所有组合。
但是,我没有设法将每次迭代的结果合并到一个表中。回忆和记忆在这里似乎不起作用,因为最初的回忆是空的。

第二个目标是从初始的海量数据集中选择具有最高平均互信息的五个属性。
PS:我已经安装了转换器扩展,以便将矩阵转换为示例集。

PPS:矩阵运算符似乎不能处理特殊属性。这就是为什么我使用“set role to regular”。

期待任何建议……

干杯
萨克斯

< ?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.5.000”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文

<过程扩展= " true " >


< /操作符>


<过程扩展= " true " >




<过程扩展= " true " >


<列出关键= " set_additional_roles " / >
< /操作符>




< /操作符>



< /操作符>












> < /过程
< /操作符>








> < /过程
< /操作符>







> < /过程
< /操作符>
> < /过程
标记:

最佳答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3367年RM数据科学家
    解决方案接受

    亲爱的(goldman Sachs),

    无论如何,相互之间的信息是在内部消失的。因此,我建议在离散标签上使用加权信息增益。

    ~马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德

答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3367年RM数据科学家

    你好,

    通过相关性/信息获得的体重难道不是你想要的吗?

    最好的

    马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
  • qwertz2qwertz2 成员职位:49大师

    亲爱的马丁,

    “加权”运算符基本上就是我想要的。我通过“处理子集”并分配权重,最后选择权重最高的五个属性。问题是没有“互信息加权”算子,“互信息矩阵”没有权重输出……

    也许是“互信息矩阵”->“矩阵到示例集”->“数据到权重”这样的过程。但是如何进行呢?权重是否存储在内部,以便我可以在循环后“按权重选择”?由于某些原因,“数据权重”总是1。请建议…

    致以最亲切的问候

    萨克斯

    < ?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.5.000”>
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文

    <过程扩展= " true " >


    < /操作符>


    <过程扩展= " true " >




    <过程扩展= " true " >


    <列出关键= " set_additional_roles " / >
    < /操作符>













    > < /过程
    < /操作符>








    > < /过程
    < /操作符>



    < /操作符>







    > < /过程
    < /操作符>
    > < /过程
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    查看“最大相关性权重”操作符,这是免费特征选择扩展的一部分。它根据相关性(对于数字标签)或相互信息(对于标称标签)输出属性权重。它还有其他几个操作符,您可能会发现它们对处理如此大的属性集很有用。

    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3367年RM数据科学家

    嘿,

    你有什么理由需要体重通过相互信息和信息获得是不行的吗?否则,最快的方法可能是使用/ groovy快速构建类似这样的东西

    ~马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
  • qwertz2qwertz2 成员职位:49大师

    嗨布莱恩,嗨马丁,

    非常感谢您抽出时间来查看我的问题!

    可能我在这个问题上的知识不够深入,但我不能使用“相关性权重”或“信息权重”增益,因为我有一个类型为“真实”而不是名义的标签。我通常想要达到的是得到一个非线性相关的图。所以我认为相互信息是一个很好的方法——它与我的“真实”标签相匹配。

    与此同时,我在如何实现我的方法上取得了一些进展。该过程现在可以确定具有最高互信息的n个属性。然而,整个过程看起来相当复杂和笨拙。

    如果您能就……提出建议,我将不胜感激

    -为了检测非线性相关性,我的方法是否通常是正确的。

    -如何调整我的过程的最新版本。

    亲切的问候

    萨克斯

    < ?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.5.000”>
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文

    <过程扩展= " true " >


    < /操作符>





    < /操作符>

    <列出关键= " name_regex_to_weights " / >

    < /操作符>



    < /操作符>



    <过程扩展= " true " >





    <过程扩展= " true " >


    <列出关键= " set_additional_roles " / >
    < /操作符>







    <列出关键= " additional_macros " / >
    < /操作符>

    <列出关键= " name_regex_to_weights " >

    < / >列表
    < /操作符>













    <& lt; br>& lt; br><br/><br/><br>在宏中存储实际的互信息值
    <& lt; br>& lt; br>& lt; br>& lt; br>& lt; br>检索宏值并将其转换为示例集。<br>
    > < /过程
    < /操作符>


    这就是需要准备好的页眉的地方。否则会出现错误"无法检索对象。"
    < /操作符>




    < /操作符>


    <列出关键= " filters_list " >

    < / >列表
    < /操作符>





    < /操作符>


    < /操作符>















    <& lt; br>& lt; br>& lt; br>& lt; br>& lt; br><br/><br>每次迭代后,将新的互信息值附加到到目前为止处理最多的五个。然后保持最好的五个。< >这似乎很复杂。有更好的方法吗?<br>特别是提取互信息来加权,再转换回样本集的部分似乎很麻烦…<br>
    > < /过程
    < /操作符>












    <& lt; br>& lt; br>& lt; br>& lt; br>& lt; br>只需要初始化一个特定的示例集合头,可以稍后调用。<br>还有更好的方法来解决这个问题吗?> < /描述
    > < /过程
    < /操作符>
    > < /过程
  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3367年RM数据科学家

    亲爱的(goldman Sachs),

    如何判断依赖关系总是一件“棘手”的事情。有一些措施,但没有明确的争论哪个是最好的。我知道我们在一个科学项目中使用了所有这些的组合。如果你愿意,我可以要求一个流程:)

    对于名义属性,我通常使用基尼指数或信息增益比。但是互信息无论如何都非常接近于信息增益(又名熵)。所以我建议你选择information_gain。

    对于数字-我已经使用排名相关几次。但我不确定我们是否在rapidminer中有这个作为一个weight_by操作符。如果没有,那就需要列入我们的建设清单。

    最好的

    马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
  • qwertz2qwertz2 成员职位:49大师

    嗨,马丁,

    是的,如果你能分享你的科学项目的过程,我会非常感激。

    从你的反馈中我了解到互信息接近于信息获取。Rapidminer中互信息算子可以处理数字标签,而信息增益算子不能处理数字标签。因此,保留数字标签的互信息可能不是一个好主意。虽然这个过程在语法上是可行的,但是互信息算法可能并不打算用于数值数据。

    那么你的建议是什么,我的源数据是由数值时间序列组成的?我应该更清楚些吗?

    -继续我笨拙的过程,包括相互信息矩阵?

    -将我的数值数据系列转换为标称值?

    等级相关性在Rapidminer中似乎不存在。这将是一个很棒的功能。此外,如果矩阵运算符提供了只计算组合标签<->所有其他属性(单个列)的可能性,而不是计算所有可能的组合所有属性<->所有属性(整个矩阵),这将很方便。

    致以最亲切的问候

    萨克斯

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    实际上排名相关(斯皮尔曼)是可用的统计扩展,可以从市场上下载,并从旧世界计算许可@land。您可能会发现这对您的流程很有帮助。

    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
  • qwertz2qwertz2 成员职位:49大师

    亲爱的马丁和布莱恩:

    非常感谢您给我指明了正确的方向。在一个离散化的标签上使用信息增加的重量最终带来了成功和幸福:)令人惊讶的是,仅仅三个操作程序就可以取代我以前复杂的过程。它也提供了相同的结果。而且,它的速度是原来的x倍!

    干杯

    萨克斯

    Thomas_Ott
登录注册置评。