Mahout 频繁模式挖掘
大家好 我用mahout 0,6关联规则推荐算法 代码如下:
int minSupport = 2;
int maxHeapSize = 100;
String input = "./models/casestudy-en/lda.dat";
String output = "output";
FPGrowth<String> fp = new FPGrowth<String>();
FileSystem fs = new RawLocalFileSystem();
Configuration conf = new Configuration();
String pattern = " "[ ,\t]*[,|\t][ ,\t]*" ";
try {
fs = FileSystem.get(conf);
SequenceFile.Writer writer = null;
writer = new SequenceFile.Writer(fs, conf, new Path(output),
Text.class, TopKStringPatterns.class);
Charset encoding = Charset.forName("UTF-8");
List<Pair<String, Long>> generateFList = null;
generateFList = fp.generateFList(new StringRecordIterator(new
FileLineIterable(new File(input), encoding, false),
pattern), minSupport);
StringRecordIterator transactions = null;
transactions = new StringRecordIterator(new FileLineIterable(new
File(input), encoding, false), pattern);
List<Text> keyList = new LinkedList<Text>();
List<TopKStringPatterns> valueList = new
LinkedList<TopKStringPatterns>();
StringOutputCollector<Text, TopKStringPatterns> collector = new StringOutputCollector<Text, TopKStringPatterns>(keyList, valueList);
StringOutputConverter soc = new StringOutputConverter(collector);
fp.generateTopKFrequentPatterns(transactions, generateFList,
minSupport, maxHeapSize, null, soc, new ContextStatusUpdater(null));
writer.close();
fs.close();
System.out.println("list.size: " + valueList.size());
HashSet<List<String>> unique = new HashSet<List<String>>();
for (int i = 0; i < valueList.size(); i++) {
System.out.println(keyList.get(i) + " / " + valueList.get(i));
Iterator<Pair<List<String>, Long>> iterator = valueList.get(i).iterator();
while (iterator.hasNext()) {
unique.add(iterator.next().getFirst());
}
}
lda.dat 格式文件如下:26 104 143 320 569 620 798
7 185 214 350 529 658 682 782 809 849 883 947 970 979
227 390
71 192 208 272 279 280 300 333 496 529 530 597 618 674 675 720 855 914 932
183 193 217 256 276 277 374 474 483 496 512 529 626 653 706 878 939
161 175 177 424 490 571 597 623 766 795 853 910 960
但我得到的结果都是这样的758 914 919 / ([758 914 919 ],2)
757 970 978 / ([757 970 978 ],2)
75 90 170 185 486 675 886 / ([75 90 170 185 486 675 886 ],2)
75 355 438 606 630 684 774 883 / ([75 355 438 606 630 684 774 883 ],2)
75 355 438 / ([75 355 438 ],2)
75 325 383 460 595 775 858 / ([75 325 383 460 595 775 858 ],2)
75 308 314 487 718 775 / ([75 308 314 487 718 775 ],2)
75 258 642 / ([75 258 642 ],2)
75 212 753 800 / ([75 212 753 800 ],2)
一样的 key和value都一样 不知道问题出现在哪里如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
引用来自“一只小桃子”的评论
挖出来的是频繁项集,就是这样的
挖出来的是频繁项集,就是这样的
引用来自“一只小桃子”的评论
75 258 642 / ([75 258 642 ],2)
75 258 642共同出现了2次,有什么问题吗?
75 258 642 / ([75 258 642 ],2)
75 258 642共同出现了2次,有什么问题吗?
怎么没有人回答啊