如何使用WEKA机器学习软件对以下类型的数据进行分类?

时间:2013-12-10 05:12:41

标签: machine-learning classification weka

我有一个包含10列的.csv文件。前9个与特定项目的属性相关,而第10个列具有“类”,表示它是哪个项目。

我正在尝试运行以下分类器 -

  • 朴素贝叶斯
  • ZeroR
  • IBK
  • 神经网络

我在尝试继续操作时遇到了一些麻烦。我应该将我的数据划分为 - 前半部分将被训练并使用后半部分数据测试结果。

我首先转到“资源管理器”并打开.csv文件。我选择所有属性,包括“CLASS”,然后转到分类标签。

从那里,我选择“百分比分割”为50%并简单地“开始”不同的分类器(如前所述)。

所以这些是问题 -

  • 是正确的方法吗?
  • 我是否还需要将“CLASS”列作为属性包含在内?
  • 我可以在GUI中进行哪些修改来改进 在不改变数据的情况下测试分类器的结果?我是 试图了解这些算法的工作情况w.r.t WEKA as 好吧,所以想尝试不同的东西。

任何人都可以帮我吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

你的问题有点过于笼统,但我会尽力帮助:

  1. 确保" Class"在" Classify"中选择了列。标签(下方"更多选项"按钮)

  2. 您可以使用2倍交叉验证,相当于50%/ 50%分割

  3. 增加训练集大小 - 使用80%/ 20%百分比或甚至90%/ 10%而不是50%/ 50%(分别对应于5倍和10倍交叉验证)。如果您的样本量较小,这可能会有所帮助

  4. 明智地选择分类器 - 根据您的问题,您还可以使用例如决策树(例如J48)和随机森林。

答案 1 :(得分:1)

  • 是的,方法是对的(对于Weka无论如何)
  • 是的,您需要包含CLASS。特别是对于需要监督训练的算法。它用于训练算法。如果没有它,训练师将如何知道答案应该是什么?
  • 您可以尝试调整参数,但是您应该这样做以更好地响应TRAINING数据。当然,总是存在过度拟合的可能性。如果您允许测试影响培训,那么您刚刚将测试数据用作辅助训练集 - 它不再是测试数据。

有人在这里问了一个类似的问题 How to build a good training data set for machine learning and predictions? 它们看起来像是不同的问题但涉及相同的考虑因素。