我可能会提出一个愚蠢的问题,但我正在与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时,我有我选择的属性或排名属性(基因),但我怎么能说这些基因预测癌症=是或癌症=否?
非常感谢!
答案 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 documentation和online courses。
答案 2 :(得分:0)
您可以在Weka中训练您的数据,并以XML或任何其他格式保存由它构建的模型。然后在Weka或Python中加载该模型或使用您感觉舒适的其他语言。加载模型后,您可以测试数据集。在Weka中它非常简单。如需更清晰的图片,请点击以下链接: https://machinelearningmastery.com/save-machine-learning-model-make-predictions-weka/