如何知道weka预测哪个标签

时间:2017-09-07 10:09:21

标签: machine-learning weka

我可能会提出一个愚蠢的问题,但我正在与weka合作预测癌症中不同基因的影响,类似这样的事情

cancer  gene1   gene2  gene3 .... 
yes     0.85    1.23   3.52  ....
no      7.58    6.25   8.91  ....
no      6.52    5.25   9.85  ....
yes     1.23    0.59   0.74  ....
.....

但癌症是= 25,癌症没有= 158加75基因。 我的问题是,当我运行InfoGain或Gainratio时,我有我选择的属性或排名属性(基因),但我怎么能说这些基因预测癌症=是或癌症=否?

非常感谢!

3 个答案:

答案 0 :(得分:1)

我对遗传学知之甚少,但你怎么知道"""基因导致癌症?它可能是很多相互作用的基因。您如何解释互动? - 你的问题。

专注于正式/技术性事物。在Weka你的班级属性"癌症"需要是最后/最右边的列,或者您使用选择框"(Nom)癌症"手动设置它。每次点击"开始"按钮。

您可能会看看Weka附带的diabetes.arff文件,其结构与数据文件类似。

如果你想拥有一个可解释的模型,你也可以运行决策树算法" J48" (在" Classify"选项卡中)和属性窗口中将minNumObj设置为更高的值(通过试验和错误找到合适的值)。这会创建具有很少级别/决策/ if语句的平面树。然后右键单击运行(在分类选项卡的左下方面板中)并选择" Visualize Tree"。

答案 1 :(得分:1)

在您的问题和您对其他答案的评论中,您提到 GainRatio InfoGain Cfs 。这些是attribute selection方法。您可以使用它们来减少数据集中的属性数量,方法是选择那些似乎提供有关您尝试预测的属性的最多信息的属性。

听起来好像你想知道的是每个属性(在你的情况下,基因)是否与感兴趣的结果正相关或负相关 - 换句话说,是否高水平的这个基因与癌症的高概率或低癌症相关吗?这不是属性选择方法的用途。

正如knb's answer建议的那样,您要做的是构建一个分类模型来预测班级(cancer = yes或{{1} } = cancer)来自其他属性。可以使用各种各样的建模算法,它们的可解释性不同,但您可以从Weka的no开始,它会为每个属性提供正相关系数或负相关系数,或functions.Logistic将构建一个决策树,显示正在使用哪些属性进行预测,以及对于属性的高值或低值的每个组合的结果。

如果您拥有大量属性,并且您认为只有一小部分属性可以提供信息,那么您可能希望在分类之前使用属性选择 - 通过检查属性选择方法的输出并删除低分在分类之前的属性,或者在Weka中使用例如自动分类trees.J48

如果您在选择和使用合适的分类技术方面需要更多帮助,我建议您查看Weka documentationonline courses

答案 2 :(得分:0)

您可以在Weka中训练您的数据,并以XML或任何其他格式保存由它构建的模型。然后在Weka或Python中加载该模型或使用您感觉舒适的其他语言。加载模型后,您可以测试数据集。在Weka中它非常简单。如需更清晰的图片,请点击以下链接: https://machinelearningmastery.com/save-machine-learning-model-make-predictions-weka/