daw*_*awg 5 java machine-learning nearest-neighbor weka
我正在努力实现我根据音乐文件的某些功能对音乐进行分类的调查的分类部分.
我目前生成的是从DB读取功能表的代码,然后将其放回到另一个表中的DB中.
问题是我不知道如何使用实例类型.文档是垃圾 - 我不知道该怎么做.
我想做什么:我想使用一组给定的音乐文件并计算它们的特征向量.在将这些数据放入arff之后,我会手动将它与流派数据(即gial)联系起来.然后将其保存到MySQL表中.
AFAIU链应该是这样的:
从DB读取
以某种方式在每个音乐文件的一组特征(与流派相关)上训练K-最近邻分类器,用于10个文件的主体.
使用此选项可以对具有相同功能但未知类型的文件进行分类.
我没有找到实际用于进一步处理的数据输出的例子,所以我不能进一步讨价还价:/
完成此操作后,我想将其读回并对新的音乐主体进行分类(我通过音乐或使用示例文件集计算的功能).应该将结果放回到另一个新表中的DB中,详细说明哪个文件具有哪个类别(已分配).
这是我的代码:
package org.tuhh.cpmgg.weka;
import weka.core.*;
import weka.core.converters.*;
import weka.experiment.InstanceQuery;
import java.io.*;
import java.util.ArrayList;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/weka2")
public class weka_chain {
/**
* loads a dataset from mysql db
* @param args the commandline arguments
*/
@GET
@Produces(MediaType.TEXT_PLAIN)
public String main()
throws Exception {
java.util.List resultList;
/*Gets data from DB*/
InstanceQuery query = new InstanceQuery();
query.setDatabaseURL("jdbc:mysql://127.2.73.130:3306/cpmgg");
query.setUsername("adminnNWqHkW");
query.setPassword("zLlkWsd-NsnQ");
query.setQuery("SELECT * FROM features"); //Read table
Instances data = query.retrieveInstances(); //into data
data.setClassIndex(data.numAttributes() - 1); //sets the number of classes (creates index)
/*Classifiers */
String algorithm = "weka.classifiers.bayes.NaiveBayes"; // Sets the type of classifier (many available)
resultList = new ArrayList();
Weka1 weka;
try {
weka = new Weka1(algorithm, "lol");
resultList = weka.weka(algorithm, data); //Essentially what is happening
/* TODO:
* Define Output so that it is in table form/instance form
* This means creating output using the old applet and somehow (?) distilling it into table shape
*/
/* Saves Results to DB */
DatabaseSaver save = new DatabaseSaver();
// save.setUrl("jdbc:mysql://localhost:3306/weka_test");
save.setUrl("jdbc:mysql://127.2.73.130:3306/cpmgg");
//save.setUrl("jdbc:mysql://localhost:3306/hibernate");
save.setUser("AMDINADMIN");
save.setPassword("PASS_ PASS");
save.setInstances(data); // define outputtype
save.setRelationForTableName(false);
save.setTableName("weka_rslts");
save.connectToDatabase();
save.writeBatch();
return "done";
}
}
Run Code Online (Sandbox Code Playgroud)
小智 0
有一个非常有趣的 Weka 教程可以回答您的部分问题。
步骤是:
查看以下链接:https://www.cs.cmu.edu/~music/cmsip/projects/p6.pdf
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |