我有一个由27个属性和597个实例组成的数据库。 我希望使用Weka将其尽可能好地分类。 哪个分类器不重要.class属性是名义上的,其余的是数字。 迄今为止最好的结果是LWL(83.2215)和oneR(83.389)。我使用了属性选择过滤器,但结果没有得到改进,即使是NN或SMO或元类,其他分类器也无法提供更好的结果。 任何关于如何改进这个数据库的想法,知道没有缺失值,数据库是在三年内聚集的约597名患者。
答案 0 :(得分:1)
你尝试过提升或装袋吗?这些通常可以帮助改善结果。
推进
Boosting是一种以基础分类器开始的集合方法 这是根据培训数据准备的。然后是第二个分类器 在它背后创建,专注于培训数据中的实例 第一个分类器出错了。这个过程继续增加 分类器,直到达到模型数量的限制或 精度。
AdaBoostM1中的Weka提供了Boosting(自适应增强) 算法
单击“算法”部分中的“添加新...”。点击“选择” 按钮。单击“元”选项下的“AdaBoostM1”。点击 “选择”按钮选择“分类器”并选择“树”下的“J48” 部分并单击“选择”按钮。单击上的“确定”按钮 “AdaBoostM1”配置。
装袋
Bagging(Bootstrap Aggregating)是一种创建的集合方法 分离训练数据集的样本并为其创建分类器 每个样本。然后是这些多个分类器的结果 合并(如平均或多数表决)。诀窍是每一个 训练数据集的样本是不同的,给出每个分类器 这是训练有素,一种微妙的不同焦点和观点 问题
单击“算法”部分中的“添加新...”。点击“选择” 按钮。点击“元”选项下的“装袋”。点击“选择” “分类器”按钮,在“树”部分下选择“J48” 然后单击“选择”按钮。点击“Bagging”上的“OK”按钮 配置。
答案 1 :(得分:0)
我尝试过Boosting and Bagging,如 @applecrusher 所述。精度有所提高。但是对于与SKLearn
相同的数据,我获得了更好的准确性。当我比较每个步骤的代码和输出时,我发现默认情况下,SKLearn中的训练测试拆分功能是对数据进行混排。当我使用WEKA
整理Collections.shuffle()
的数据时,我看到了更好的结果。试试看。