【问题标题】:Finding a correlation between variable and class variable查找变量和类变量之间的相关性
【发布时间】:2015-06-12 11:05:00
【问题描述】:

我有一个数据集,其中包含 7 个数字属性和一个标称属性,即类变量。我想知道如何才能获得可用于预测类属性的最佳属性。找到每个属性的最大信息增益是解决方案吗?

【问题讨论】:

    标签: weka data-mining


    【解决方案1】:

    因此,您所问的问题属于特征选择领域,更广泛地说,属于特征工程。网上有很多关于这方面的文献,网上肯定有很多关于如何做到这一点的博客/教程/资源。

    为了给你一个很好的链接,我刚刚阅读了,这是一个blog with a tutorial on some ways to do feature selection in Weka,以及同一个博客的general introduction on feature selection。正如 knb 的回答所指出的那样,自然有很多不同的方法。

    不过,为了给出简短的描述,有几种方法可以解决这个问题:您可以为每个特征(如信息增益等)分配一个分数,并过滤掉分数为“差”的特征;您可以将寻找最佳参数视为搜索问题,您可以在其中获取不同的特征子集并依次评估准确性;并且您可以使用嵌入式方法,在构建模型时了解哪些特征对准确性的贡献最大。嵌入式方法的示例是 LASSO 和岭回归等正则化算法。

    【讨论】:

      【解决方案2】:

      您只是想要该属性的名称,还是还想要该“最佳”属性的可量化指标(如 t 值)?

      对于定性方法,您可以生成一个只有一个分裂、两个叶子的分类树。

      例如 weka 的“diabetes.arff”样本数据集(n = 768),它的结构与您的数据集相似(所有属性都是数字,但类属性只有 两个 不同的分类结果),我可以将 minNumObj 参数设置为 200。这意味着:创建一棵树,每个叶子中至少有 200 个实例。

      java -cp $WEKA_JAR/weka.jar  weka.classifiers.trees.J48 -C 0.25 -M 200 -t data/diabetes.arff 
      

      输出:

      J48 pruned tree
      ------------------
      
      plas <= 127: tested_negative (485.0/94.0)
      plas > 127: tested_positive (283.0/109.0)
      
      Number of Leaves  :     2
      
      Size of the tree :  3
      
      
      Time taken to build model: 0.11 seconds
      Time taken to test model on training data: 0.04 seconds
      
      === Error on training data ===
      
      Correctly Classified Instances         565               73.5677 %
      

      这将创建一棵在“plas”属性上有一个拆分的树。为了解释,这是有道理的,因为实际上,糖尿病患者血浆中的葡萄糖浓度升高。所以“plas”是最重要的属性,因为它被选择用于第一次拆分。但这并不能告诉你有多重要

      对于更定量的方法,也许您可​​以使用(多项)逻辑回归。我对此不是很熟悉,但无论如何:

      在 Exlorer GUI 工具中,选择“分类”>“功能”>“物流”。

      运行模型。优势比和系数可能以可量化的方式包含您需要的内容。较低的优势比(但 > 0.5)更好/更重要,但我不确定。也许在这里阅读,this answer 由其他人。

          java -cp $WEKA_JAR/weka.jar  weka.classifiers.functions.Logistic -R 1.0E-8 -M -1 -t data/diabetes.arff 
      

      这是命令行输出

      Options: -R 1.0E-8 -M -1 
      
      Logistic Regression with ridge parameter of 1.0E-8
      Coefficients...
                             Class
      Variable     tested_negative
      ============================
      preg                 -0.1232
      plas                 -0.0352
      pres                  0.0133
      skin                 -0.0006
      insu                  0.0012
      mass                 -0.0897
      pedi                 -0.9452
      age                  -0.0149
      Intercept             8.4047
      
      
      Odds Ratios...
                             Class
      Variable     tested_negative
      ============================
      preg                  0.8841
      plas                  0.9654
      pres                  1.0134
      skin                  0.9994
      insu                  1.0012
      mass                  0.9142
      pedi                  0.3886
      age                   0.9852
      
      === Error on training data ===
      
      Correctly Classified Instances         601               78.2552 %
      Incorrectly Classified Instances       167               21.7448 %
      

      【讨论】:

        猜你喜欢
        • 2017-11-25
        • 2021-01-19
        • 2019-02-12
        • 2020-05-28
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多