1个回答
展开全部
你的意思是从训练好的决策树模型中自动提取出分类规则吗?weka好像没有可以直接从树结构中提取规则的功能吧。
不过如果模型不是太复杂的话手工统计每个从根节点到叶子节点的遍历也很方便啊,每个遍历上的内部节点加上树枝就是if条件,叶子节点就是then的判断结果。如果模型比较复杂的话可以考虑做个简单的二次开发。
假设你用的是J48,用weka explorer把训练好的决策树另存下来(或者直接在代码里用输出流写入文件),再用输入流把决策树读入为一个sourcable对象,调用对象的tosource方法把决策树代码化,接下来就是文本处理的问题了,通过分析代码结构得到相应的分类规则。
大概是这样的读入过程:
FileInputStream j48 = new FileInputStream("j48.model");
ObjectInputStream j48object = new ObjectInputStream(j48);
Sourcable j48code = (Sourcable) j48object.readObject();
System.out.println(j48code.toSource("J48 Tree"));
用上面几行举个例子,希望对你有启发^^
不过如果模型不是太复杂的话手工统计每个从根节点到叶子节点的遍历也很方便啊,每个遍历上的内部节点加上树枝就是if条件,叶子节点就是then的判断结果。如果模型比较复杂的话可以考虑做个简单的二次开发。
假设你用的是J48,用weka explorer把训练好的决策树另存下来(或者直接在代码里用输出流写入文件),再用输入流把决策树读入为一个sourcable对象,调用对象的tosource方法把决策树代码化,接下来就是文本处理的问题了,通过分析代码结构得到相应的分类规则。
大概是这样的读入过程:
FileInputStream j48 = new FileInputStream("j48.model");
ObjectInputStream j48object = new ObjectInputStream(j48);
Sourcable j48code = (Sourcable) j48object.readObject();
System.out.println(j48code.toSource("J48 Tree"));
用上面几行举个例子,希望对你有启发^^
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询