作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 Java Mahout 进行机器学习。我已经用 MySQL 下载了我想要的所有数据。我卡住的地方是当我的“SparseRowMatrix”类型变量完成所有计算和重新排列时。我根本不明白如何调用我认为合适的两种方法中的任何一种:
1) org.apache.mahout.math.decomposer.lanczos.LanczosSolver
2) org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver
此时任何建议都有帮助!
最佳答案
DistributedLanczosSolver
实现了 Tool
接口(interface),因此您可以将其作为常规 Hadoop 作业运行,例如:
hadoop jar $MAHOUT_HOME/mahout-examples-0.5-job.jar org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver --input /path/to/input --output /path/to/output --numCols 42 --numRows 42 --cleansvd "true" --rank 5
您也可以使用以下方法直接从 Java 调用它:
ToolRunner.run(new DistributedLanczosSolver().job(), args);
或者,如果您不需要以分布式方式执行此操作,LanczosSolver.solve
方法就是您要寻找的方法,您必须将矩阵、特征向量和特征值传递给它值。它使用 Lanczos 算法在幕后做了一些复杂的事情,我无法解释,所以我建议您直接查看以获得更多清晰度 in the source code .
关于java - Mahout 中的 Lanczsos-特征向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666926/
我正在尝试使用 Java Mahout 进行机器学习。我已经用 MySQL 下载了我想要的所有数据。我卡住的地方是当我的“SparseRowMatrix”类型变量完成所有计算和重新排列时。我根本不明白
我是一名优秀的程序员,十分优秀!