这是一个相当新手的问题,所以请持保留态度。
我是数据挖掘领域的新手,并试图让我的头脑围绕这个话题。现在我正在尝试完善我现有的模型,以便更好地对实例进行分类。问题是,我的模型有大约 480 个属性。我确信并非所有这些都是相关的,但我很难指出哪些确实重要。
问题是:拥有有效的训练和测试集,是否可以使用某种数据挖掘算法来丢弃似乎对分类质量没有任何影响的属性?
我正在使用Weka。
这是一个相当新手的问题,所以请持保留态度。
我是数据挖掘领域的新手,并试图让我的头脑围绕这个话题。现在我正在尝试完善我现有的模型,以便更好地对实例进行分类。问题是,我的模型有大约 480 个属性。我确信并非所有这些都是相关的,但我很难指出哪些确实重要。
问题是:拥有有效的训练和测试集,是否可以使用某种数据挖掘算法来丢弃似乎对分类质量没有任何影响的属性?
我正在使用Weka。
您应该使用Weka拥有的一些分类器算法进行测试。
基本思想是使用交叉验证选项,因此您可以查看哪种算法为您提供了最佳的正确分类实例值。
我可以给你一个我的训练集的例子,使用交叉验证选项并选择折叠10。
如您所见,使用J48分类器,我将拥有:
Correctly Classified Instances 4310 83.2207 %
Incorrectly Classified Instances 869 16.7793 %
如果我将使用例如NaiveBayes算法,我将拥有:
Correctly Classified Instances 1996 38.5403 %
Incorrectly Classified Instances 3183 61.4597 %
依此类推,值因算法而异。
因此,请尽可能多地测试算法,看看哪一种可以为您提供最佳的正确分类实例/时间消耗。
阅读有关聚类算法的主题(尽管仅在您的训练集上!)
评论转换为 OP 建议的答案:如果您使用 weka 3.6.6 - 选择模块资源管理器 -> 而不是转到选项卡“选择属性”并选择“属性评估器”和“搜索方法”,您还可以在使用完整数据集之间进行选择或 cv 集,有关更多详细信息,请参见http://forums.pentaho.com/showthread.php?68687-Selecting-Attributes-with-Weka或http://weka.wikispaces.com/Performing+attribute+selection
查看 InfoGainAttributeEval 类。buildEvaluator() 和 evaluateAttribute(int index) 函数应该有所帮助。