weka 代码 算法 j48 决策树 c4.5
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weka 代码 算法 j48 决策树 c4.5相关的知识,希望对你有一定的参考价值。
用weka做的决策树c4.5算法,我想知道怎么看到他的算法代码?weka好像是java编的,那么怎么把这段java代码提取出来呢?谢谢
我想你应该是想通过这个页面的url来得到这个网页里面的某些数据把。用HttpClient 。下面我这个方法是得到搜狗页面命中多少条记录的代码。
public static void main (String args[])
String sRequestUrlString="http://www.sogou.com/web?query=ondblclick
%3D%22%22";
GetMethod getMethod = new GetMethod(sRequestUrlString);
HttpClient client = new HttpClient();
client.setConnectionTimeout(1000 * 60);
int status=0;
try
status = client.executeMethod(getMethod);
catch (HttpException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
String sResponse="";
if(status==HttpStatus.SC_OK)
sResponse=(getMethod.getResponseBodyAsString());
else
System.out.println("检索失败");
getMethod.releaseConnection();
String regExData = "找到 ([,\\d]*) 个网页";
if(sResponse!=null && sResponse.trim().length()>0)
Pattern pattern = Pattern.compile(regExData);
Matcher matcher = pattern.matcher(sResponse);
if(matcher.find())
if(matcher.groupCount()>=1)
int iTmpInteger =
Integer.parseInt(matcher.group(1).replaceAll(",",""),10);
System.out.println("找到"+iTmpInteger+"个网页");
这段测试代码是来测试搜狗的,String sRequestUrlString="http://www.sogou.com/web?
query=ondblclick%3D%22%22";
这里是拼写好的检索的url,
sResponse=(getMethod.getResponseBodyAsString());这个是得到本页面的源文件,然后通过
String regExData = "找到 ([,\\d]*) 个网页";正则表达式来获取([,\\d]*) ,得到命中的条数。 参考技术A 思路,先将这些信息,存到javabean中,然后存在集合中,最后在程序中以遍历的形式写出这些东西!然后写入XML文件中.
相同的决策树,不同的结果
【中文标题】相同的决策树,不同的结果【英文标题】:Same decision tree, different results 【发布时间】:2015-07-09 19:25:40 【问题描述】:我在做一个机器学习应用,使用 Weka 进行测试,比较分类算法等。在 Weka 上进行测试操作后,我决定使用 J48 决策树。我解析了 Weka 生成的修剪树并将其实现为 C 中的 if-then 格式。但是,如果我测试了在我的程序中用作 Weka 输入的数据,结果与 Weka 的混淆矩阵不同。在 Weka 的测试选项中,我选择了“使用训练集”并使用了该决策树。这是混淆矩阵和我的结果:
=== 混淆矩阵 ===
a b c d e f g <-- classified as
178 1 0 1 13 2 7 | a = InstantMessaging
4 29 11 1 14 46 25 | b = Mail
1 3 1051 4 32 921 54 | c = Music
4 0 14 9596 10 4 10 | d = P2P
10 1 46 6 607 263 59 | e = SocialMedia
4 1 230 2 44 7619 63 | f = VideoStream
5 0 57 1 57 167 1016 | g = WebBrowsing
我的程序结果:
"instantMessaging" => 210,
"mail" => 33,
"music" => 4933,
"p2p" => 9886,
"socialMedia" => 1220,
"videoStream" => 4958,
"webBrowsing" => 1054,
"total" => 22294,
虽然一切都相同(决策树、数据、特征值、函数等),但为什么我会得到这些不同的结果? Weka 是否有可能产生/显示错误的决策树?
【问题讨论】:
你能分享你的代码吗? 【参考方案1】:通过更深入的搜索,我找到了答案。问题是由创建功能的更改功能引起的。由于此功能已更改,因此功能集中的功能结果不等于 arff 文件。现在所有结果都是合乎逻辑的。
【讨论】:
以上是关于weka 代码 算法 j48 决策树 c4.5的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Weka API 在 J48 / C4.5 上进行 10 倍交叉验证后保存最佳树