我正在用 Mahout 分析 k-means 算法。我将运行一些测试,观察性能,并对我得到的结果进行一些统计。
我不知道如何在 Mahout 中运行我自己的程序。但是,命令行界面可能就足够了。
要运行我做的示例程序
$ mahout seqdirectory --input uscensus --output uscensus-seq
$ mahout seq2sparse -i uscensus-seq -o uscensus-vec
$ mahout kmeans -i reuters-vec/tfidf-vectors -o uscensus-kmeans-clusters -c uscensus-kmeans-centroids -dm org.apache.mahout.common.distance.CosineDistanceMeasure -x 5 -ow -cl -k 25
数据集是一个大型 CSV 文件。每一行都是一条记录。特征以逗号分隔。第一个字段是 ID。由于输入格式,我不能立即使用 seqdirectory。我正在尝试实现这个类似问题的答案How to perform k-means clustering in mahout with vector data stored as CSV? 但我还有 2 个问题:
- 如何从 CSV 转换为 SeqFile?我想我可以使用 Mahout 编写自己的程序来进行这种转换,然后将其输出用作 seq2parse 的输入。我想我可以使用 CSVIterator ( https://cwiki.apache.org/confluence/display/MAHOUT/File+Format+Integrations )。我应该使用什么类来阅读和写作?
- 如何构建和运行我的新程序?我无法通过 Mahout 这本书或这里的其他问题来解决这个问题。