数据挖掘实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能信息处理课程实验
汪辉2011019100013 一、实验工具Weka简介
Weka是由新西兰怀卡托大学开发的智能分析系统(Waikato Environment for Knowledge Analysis)。在怀卡托大学以外的地方,Weka通常按谐音念成Mecca,是一种现今仅存活于新西兰岛的,健壮的棕色鸟, 非常害羞,好奇心很强,但不会飞。
Weka是用Java写成的,它可以运行于几乎所有的操作平台,包括Linux,Windows等操作系统。
Weka平台提供一个统一界面,汇集了当今最经典的机器学习算法及数据预处理工具。做为知识获取的完整系统,包括了数据输入、预处理、知识获取、模式评估等环节,以及对数据及学习结果的可视化操作。并且可以通过对不同的学习方法所得出的结果进行比较,找出解决当前问题的最佳算法。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka 小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。Weka的每月下载次数已超过万次。
二、Weka的使用方法
1、是将一种学习方法应用于一个数据集,然后分析其输出,从而更多地了解这些数据(分析数
据集的潜在知识)。
2、是使用已学习到的模型对新的实例做出分类预测
3、是应用几种不同的学习器,再根据它们的性能表现选择其中一种用来做预测。
在Weka中将学习方法又称作分类器或学习器,用户可在Weka互动式界面的菜单中选择一种想要的分类器。许多分类器带有可调节的参数,这些参数可通过属性列表或对象编辑器进行更改。所有学习器的性能都是通过一个共同的评估模块进行衡量。
与选择学习器一样,用户也要从菜单中选择能满足或对应该学习器的过滤器(进行数据预处理)。不同的过滤器具有不同的参数。
其所处理的数据是一个二维表。
三、实验步骤
1、流量数据输入到weka平台;
2、FCBF或者其它有监督特征选择算法进行特征选择
3、naive bayes(朴素贝叶斯) 分类
四、实验内容
1、无特征选择+贝叶斯;
2、特征选择+贝叶斯;
3、无特征选择+核密度估计贝叶斯;
4、有特征选择+核密度估计贝叶斯;
五、实验代码
1、无特征选择+贝叶斯;
* Rule: LOCAL dominates NONE; GLOBAL dominates LOCAL.
* -> When there is a local credal set, compute with the
* local credal set.
* -> When there is a global credal set specif ication,
* compute with that (ignore local credal sets).
*/
public class QBExpectation extends Expectation {
ectation(BayesNet b_n, boolean dpc) {
super(b_n, dpc);
}
protected void initialize_inference() {
inf erence = new QBInf erence(bn, do_produce_clusters);
}
protected void do_expectation_from_inf erence(DiscreteFunction df) {
current_f unction = df;
if (((QBInference)inf erence).is_inference_without_local_neighborhoods) expectation_without_local_neighborhoods(df);
else
expectation_with_local_neighborhoods(df);
}
private void expectation_with_local_neighborhoods(DiscreteFunction df) {
int i, j, jump = 1;
double v, min, max;
f or (i=1; i jump *= normalized_results.get_variable(i).number_values(); min = df.get_value(0); max = df.get_value(0); f or (i=0; i if (min < df.get_value(i)) min = df.get_value(i); if (max > df.get_value(i)) max = df.get_value(i); } f or (j=0; j v = 0.0; f or (i=0; i v += df.get_value(i) * normalized_results.get_value( j + i*jump ); } if (min > v) min = v; if (max < v) max = v; } switch (qbn.get_global_neighborhood_type()) { case QuasiBayesNet.NO_CREDAL_SET: results = tv.posterior_expect ed_values(df); break; } 2、特征选择+贝叶斯; * Rule: LOCAL dominates NONE; GLOBAL dominates LOCAL. public class QBInf erence extends Inference { BayesNet original_bn; public Q BInference(BayesNet b_n, boolean dpc) { super(b_n, dpc); original_bn = b_n; transf orm_network(); } private void transf orm_network() { if (bn instanceof QuasiBayesNet) is_inf erence_without_local_neighborhoods = ( ((QuasiBayesNet)bn).get_global_neighborhood_type() != QuasiBayesNet.NO_CREDAL_SET ) || (! (((QuasiBayesNet)bn).are_local_credal_sets_present()) ); else is_inf erence_without_local_neighborhoods = true; bn.set_name("Transf ormed-Network"); V ector auxiliary_variables = transf orm_probability_f unctions_array(); transf orm_probability_variables_array(auxiliary_variabl es); } else { new_probability_f unction = new ProbabilityFunction(bn, pf.get_variables(), pf.get_values(), (V ector)null); bn.set_probability_f unction(i, new_probability_f unction); } return(auxiliary_variables); } f or (e = auxs.elements(), j=i; j