Node.js 如何将mongoDB数据转换为arff文件
我通过不同的表单从用户那里获得不同的数据集。我使用MEAN stack、mongoose和node weka来分析存储的数据,但在此之前,weka使用arff文件,这就是为什么我必须将mongoDB中存储的数据转换为arff文件的原因。有人知道怎么做吗?我是初学者,还没有找到合适的文档。 下面是NodeJS中代码的开头Node.js 如何将mongoDB数据转换为arff文件,node.js,mongodb,weka,mean-stack,arff,Node.js,Mongodb,Weka,Mean Stack,Arff,我通过不同的表单从用户那里获得不同的数据集。我使用MEAN stack、mongoose和node weka来分析存储的数据,但在此之前,weka使用arff文件,这就是为什么我必须将mongoDB中存储的数据转换为arff文件的原因。有人知道怎么做吗?我是初学者,还没有找到合适的文档。 下面是NodeJS中代码的开头 var data = ... //ARFF json format var options = { //'classifier': 'weka.classifiers.baye
var data = ... //ARFF json format
var options = {
//'classifier': 'weka.classifiers.bayes.NaiveBayes',
'classifier': 'weka.classifiers.functions.SMO',
'params' : ''
};
var testData = {
outlook : 'sunny',
windy : 'TRUE'
};
weka.classify(data, testData, options, function (err, result) {
console.log(result); //{ predicted: 'yes', prediction: '1' }
我不知道什么是纯javascript解决方案,只知道命令行解决方案(适用于linux、unix和mac) 在任何情况下,weka的许多分类器确实期望一个arff文件作为输入 您可以将json数据导出到csv,在命令行上动态地将csv转换为.arff,然后通过管道将它们传输到weka 3.6(而不是3.7) 您可以使用bash脚本通过临时文件将csv转换为arff。此专用脚本
weka集群
演示。让它适应你的需要
#!/usr/bin/env bash
ALGO="$@"
IN=$(mktemp --tmpdir weka-cluster-XXXXXXXX).arff
finish () {
rm -f $IN
}
trap finish EXIT
csv2arff > $IN
weka filters.unsupervised.attribute.AddCluster -W "weka.${ALGO}" -i $IN -o /dev/stdout | arff2csv
将此脚本称为
cat my.csv|weka cluster cluster.SimpleKMeans
您可以将其扩展到mongodb,如下所示:
mymongoquery.sh | json2csv |(更多可选过滤器,例如csvcut)| weka集群器。SimpleKMeans
Jeroen Janssen的书“中详细描述了这些命令行工具(但不是mongo)。查看csv2arff、weka集群以及如何安装其他工具(csv2arff、arff2csv、csvcut、json2csv)。如果有人感兴趣,这是一种转换为json文件pawn的方法('mongoexport'、['--db'、'test'、'--collection'、'users'、'--out'、'file.json'])。on('error',function(err err{throw err});