查找变量和类变量之间的相关性

问题描述 投票:1回答:2

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

weka data-mining
2个回答
1
投票

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

对于定性方法,您可以生成仅包含一个拆分,两个叶子的分类树。

例如,weka的“ diabetes.arff”样本数据集(n = 768),其结构与您的数据集类似(所有attribs均为数字,但class属性只有两个不同的分类结果) ,我可以将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”是最重要的属性,因为它是为第一次拆分而选择的。 但这并不能告诉您多么重要。

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

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

运行模型。 比值比和系数可能会量化地包含您所需要的内容。 较低的优势比(但> 0.5)会更好/更显着,但我不确定。 也许在这里读到,别人回答这个问题

    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 %

1
投票

因此,您要问的问题属于特征选择的范围,更广泛地说是特征工程的范围。 在线上有很多关于此的文献,并且在线上肯定有很多关于如何做到这一点的博客/教程/资源。

为了给您提供一个通俗易懂的链接,这是一个博客,其中包含有关在Weka中进行特征选择的一些方法的教程 ,以及该博客对特征选择一般介绍 。 正如knb的答案所指出的,自然有很多不同的方法。

为了提供简短的描述,有几种解决方法:您可以为每个功能分配分数(例如信息获取等),并用“不良”分数过滤掉特征; 您可以将查找最佳参数视为搜索问题,在其中您可以使用功能的不同子集并依次评估准确性; 并且您可以使用嵌入式方法,这种方法可以了解哪些功能在构建模型时最有助于准确性。 嵌入式方法的示例是诸如LASSO和ridge回归之类的正则化算法。

© www.soinside.com 2019 - 2024. All rights reserved.