Weka[24] Apriori源代码分析(1)

Weka[24] Apriori源代码分析(1)

ID:40279383

大小:235.50 KB

页数:12页

时间:2019-07-30

Weka[24] Apriori源代码分析(1)_第1页
Weka[24] Apriori源代码分析(1)_第2页
Weka[24] Apriori源代码分析(1)_第3页
Weka[24] Apriori源代码分析(1)_第4页
Weka[24] Apriori源代码分析(1)_第5页
资源描述:

《Weka[24] Apriori源代码分析(1)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Weka[24]Apriori源代码分析作者:Koala++/屈伟曾经卖过一个Apriori的程序,那个程序大约有50%的正确率(当然结果是正确的,是只实现上很不一样),数据挖掘课上写了一个Apriori,一部分懒地按书上的算法,大约对了80%(当然结果仍然是正确的),记得邱强有一次要用Apriori算法时说:weka的太慢了,还好上次数据挖掘课实现了一下,还挺快的,注意的一点是关联规则不属于机器学习,这里我不想再分出来一个数据挖掘的组了。从buildAssociations函数开始:double[]confidences,supports;int[

2、]indices;FastVector[]sortedRuleSet;intnecSupport=0;instances=newInstances(instances);if(m_removeMissingCols){instances=removeMissingColumns(instances);}看一下removeMissingColumns,虽然它是如此的不重要:protectedInstancesremoveMissingColumns(Instancesinstances)throwsException{intnumInstances=i

3、nstances.numInstances();StringBufferdeleteString=newStringBuffer();intremoveCount=0;booleanfirst=true;intmaxCount=0;for(inti=0;i

4、asethisbylookingforthemostfrequent//valueint[]counts=as.nominalCounts;if(counts[Utils.maxIndex(counts)]>maxCount){maxCount=counts[Utils.maxIndex(counts)];}}if(as.missingCount==numInstances){if(first){deleteString.append((i+1));first=false;}else{deleteString.append(","+(i+1));}r

5、emoveCount++;}}if(m_verbose){System.err.println("Removed:"+removeCount+"columnswithallmissing"+"values.");}if(m_upperBoundMinSupport==1.0&&maxCount!=numInstances){m_upperBoundMinSupport=(double)maxCount/(double)numInstances;if(m_verbose){System.err.println("Settingupperboundmin

6、supportto:"+m_upperBoundMinSupport);}}if(deleteString.toString().length()>0){Removeaf=newRemove();af.setAttributeIndices(deleteString.toString());af.setInvertSelection(false);af.setInputFormat(instances);InstancesnewInst=Filter.useFilter(instances,af);returnnewInst;}returninsta

7、nces;}For循环中的第一个if不重要,不要理睬。它的作用是想在后面也就是maxCount/numInstances那看一下support的下界设多少。第二个if中是看是不是缺失值等于样本数,也就是在这个属性上所有的值都是缺失的,那么就用deleteString把这些都是缺失值的属性下标记下来,连成一个字符串,最后一个if就是标准的删除特征的代码,也就是把那么都是缺失值的特征给删除了。if(m_car&&m_metricType!=CONFIDENCE)thrownewException("ForCAR-Miningmetrictypehasto

8、beconfidence!");如果想得到与类别有关的规则,又没有设成CONFIDENCE是不可以的。//o

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。