用java和rapidminer创建了一个新的聚类算法

imfaithimfaith 成员职位:14因素二世
2019年11月编辑 帮助
嗨,我是RapidMiner的新手。我有一个项目,包括使用Java编程语言对一个新的聚类算法建模。例如,我的模型首先应用K-means,然后添加其他技术。在这种情况下,我不知道该怎么办。我在网上研究了一下,我不明白:我是否必须在我的java代码中集成RapidMiner,然后使用RapidMiner中实现的算法,甚至能够看到RapidMiner中的表示(在我的情况下聚类数据)将我的算法与现有算法进行比较,或者我必须在RapidMiner中建模这个新模型,然后将其添加到我的java应用程序中。
我在Eclipse中集成了RapidMiner,如下所述:http://rapid-i.com/content/view/25/48/lang,en/
我不明白这个的效用,我可以使用例如K-means算法从rapidMiner和恢复在我的java代码的结果?
我脑子里的事情很混乱。你能告诉我怎么开始吗?
致以最亲切的问候。

答案

  • 马克马克 成员职位:11因素二世
    你好,
    如果我能回答,我会说我刚开始的时候也有同样的问题。幸运的是,整个rapidminer都是用java编写的,因此您可以通过使用其源代码将其集成到应用程序中。最简单的方法是在rapidminer中创建进程,在应用程序中运行它,并让结果打印到控制台上。在rapidminer GUI中所做的一切都可以在eclipse中完成。
    http://rapid-i.com/wiki/index.php?title=Integrating_RapidMiner_into_your_application本页可能有助于基本的理解。
    对你有帮助吗?
  • imfaithimfaith 成员职位:14因素二世
    你好,
    谢谢你的回答。我在Eclipse中集成了RapidMiner。我的问题是找不到起点。我必须创造一个新的聚类算法。首先,我想将k-means直接应用到RapidMiner(因为我现在可以从eclipse启动RapidMiner),然后在我的java代码中检索结果(集群及其内容)以继续应用其他技术编程,但我不知道它是否可行以及如何做到这一点?因为我也是java的初学者。我做了记录,但一无所获;在RapidMiner中缺乏文档。
    谢谢你!
  • Marco_BoeckMarco_Boeck 管理员、版主、员工、会员、大学教授职位:1984年RM工程
    你好,

    我的建议一如既往;)
    在RapidMiner GUI中创建所需的进程,然后通过java对数据执行该进程,然后继续处理结果。要了解这是如何完成的,请参见示例在这里
    如果您想创建自己的操作符,请查看现有的操作符(检查OperatorsCore.xml文件以查看RM GUI操作符背后的类),然后从那里开始。

    问候,
    马可
  • imfaithimfaith 成员职位:14因素二世
    谢谢你明确的回答。我写了这个程序,但是我遇到了一些问题。我不明白,因为我是java的初学者。

    进口com.rapidminer.RapidMiner;
    进口com.rapidminer.RapidMinerCommandLine;
    进口com.rapidminer.example.ExampleSet;
    进口com.rapidminer.operator.ExecutionMode;
    进口com.rapidminer.operator.IOContainer;
    进口com.rapidminer.operator.IOObject;
    进口com.rapidminer.repository.IOObjectEntry;
    进口com.rapidminer.repository.ProcessEntry;
    进口com.rapidminer.repository.RepositoryLocation;

    公共类模型{

    public static void main(String args[])抛出异常{

    //这会初始化你可用的存储库的RapidMiner

    RapidMiner.setExecutionMode (ExecutionMode.COMMAND_LINE);

    RapidMiner.init ();
    //从存储库加载进程
    RepositoryLocation pLoc = new RepositoryLocation("//C:/Users/faith/Desktop/MyRepository/MyData/kmeansProcess");
    ProcessEntry entry = (ProcessEntry) plocc . locateentry ();
    字符串processXML = entry . retrievexml ();
    进程myProcess =新进程(processXML);
    //如果需要,您可以将进程对象作为参数(如果使用进程输入端口,就会出现这种情况)
    RepositoryLocation loc = new RepositoryLocation("//C:/Users/faith/Desktop/MyRepository/MyData/cars");
    IOObjectEntry entry = (IOObjectEntry) local . locateentry ();
    myIOObject= entry.retrieveData(null);

    //执行进程并获取结果对象
    IOContainer ioInput = new IOContainer(new IOObject[] {myIOObject});
    //如果你不使用进程的输入端口,只使用myProcess.run()
    IOContainer iresult = myProcess.run(ioInput);

    //根据需要使用结果,例如,如果你的进程只返回一个ExampleSet,使用如下:
    if (iresult . getelementat (0) instanceof ExampleSet) {
    exampleeset resultSet = (exampleeset) iresult . getelementat (0);






    线程"main"中的异常java.lang.Error:未解决的编译问题:
    COMMAND_LINE无法解析或者不是一个字段
    无法实例化类型Process
    对于Process类型,方法run(IOContainer)没有定义

    在model.main (model.java: 23)

    谢谢你!
  • Marco_BoeckMarco_Boeck 管理员、版主、员工、会员、大学教授职位:1984年RM工程
    你好,

    你使用IDE吗?请考虑使用例如Eclipse,然后在java类中按Ctrl+Shift+o。这将处理进口。您的类中缺少必需的导入。

    问候,
    马可
  • imfaithimfaith 成员职位:14因素二世
    你好;
    我使用Eclipse。没有引入任何导入,它不会询问缺失的导入。它告诉我三个错误:
    1)他不知道command_line“command_line不能被解析或不是一个字段”在这个指令中:
    RapidMiner。setExecutionMode (ExecutionMode.COMMAND_LINE);
    当我看到Eclipse提出的可能的方法时,它不是COMMAND_LINE ?这是什么意思?
    2)不能从这个语句实例化Process类型:
    字符串processXML = entry . retrievexml ();
    进程myProcess =新进程(processXML);
    3)对于Process类型,run (IOContainer)方法是未定义的:
    IOContainer iresult = myProcess.run(ioInput);

    当我看到myProcess的可能方法时,我没有找到run()方法。

    我不能解决这三个问题。

    致以最亲切的问候
  • imfaithimfaith 成员职位:14因素二世
    你好;
    我用这样的表述解决了第一个问题
    RapidMiner.setExecutionMode (com.rapidminer.RapidMiner.ExecutionMode.COMMAND_LINE);
    但最后两个问题,还没有。

    谢谢
  • Marco_BoeckMarco_Boeck 管理员、版主、员工、会员、大学教授职位:1984年RM工程
    你好,

    正如开发常见问题解答中所述,如果您是java初学者,不建议集成RM。
    这些错误表明您的导入是混乱的。

    问候,
    马可
  • imfaithimfaith 成员职位:14因素二世
    你好,
    谢谢你,我已经改正了错误。但是当我运行程序时,它显示了这个错误信息:

    2012年11月8日10:52:43 com.rapidminer.tools.ParameterService init
    信息:读取配置资源com/rapidminer/resources/rapidminerrc。乐鱼体育安装
    2012年11月8日10:52:44 com.rapidminer.toolsI18N < clinit >
    INFO:设置locale为en。
    2012年11月8日10:52:44 com.rapid_i。发射器ensureRapidMinerHomeSet
    属性rapidminer。家还没定。猜测。
    2012年11月8日10:52:44 com.rapid_i。发射器ensureRapidMinerHomeSet
    信息:尝试父目录“C:\Program Files\Rapid-I\RapidMiner5\lib\launcher.jar”…
    2012年11月8日10:52:44 com.rapid_i。发射器ensureRapidMinerHomeSet
    信息:尝试父目录'C:\Program Files\Rapid-I\RapidMiner5\lib\rapidminer.jar'…gotcha!
    2012年11月8日10:52:56 com.rapidminer.parameter.ParameterTypePassword解密tpassword
    警告:XML文件中的密码看起来像未加密的纯文本。
    2012年11月8日10:53:04 com.rapidminer.tools.plugin.Plugin . registerOperators
    INFO:没有为插件社区指定操作符描述符。尝试插件初始化类com.www.turtlecreekpls.community.CommunityPluginInit。
    2012年11月8日10:53:04 com.rapidminer.tools.plugin.Plugin . registerOperators
    警告:没有为:Community定义操作符描述符
    2012.11.8 10:53:06 com.rapidminer.tools.jdbc.JDBCProperties
    警告:缺少ODBC桥的数据库驱动程序类名(例如Access)
    2012年11月8日10:53:06 com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
    没有找到JDBC驱动程序ca.ingres.jdbc.IngresDriver。可能没有安装驱动程序。
    2012年11月8日10:53:06 com.rapidminer.tools.jdbc.JDBCProperties registerDrivers
    信息:JDBC驱动程序oracle.jdbc.driver.OracleDriver未找到。可能没有安装驱动程序。
    线程"main"中的异常com.rapidminer.repository.RepositoryException:请求的repository C:不存在。
    com.rapidminer.repository.RepositoryManager.getRepository (RepositoryManager.java: 202)
    com.rapidminer.repository.RepositoryLocation.getRepository (RepositoryLocation.java: 144)
    com.rapidminer.repository.RepositoryLocation.locateEntry (RepositoryLocation.java: 167)
    Model.main (Model.java: 25)
    你能帮我吗?
  • Marco_BoeckMarco_Boeck 管理员、版主、员工、会员、大学教授职位:1984年RM工程
    你好,

    请参阅现有的文档,特别是手册和如何扩展RapidMiner白皮书,然后再继续。您正在尝试访问不存在的存储库。

    问候,
    马可
登录注册置评。