我有一个由大约 10000 个样本组成的数据集,具有两个特征。我想使用 ELKI 来运行 LSDBC 算法并对我的数据集进行聚类。但是,我无法让 ELKI 工作。在运行 elki-0.7.0.jar 并将我想要的设置输入到 gui 之后,无论我选择什么设置,我都会在 gui 底部的控制台输入中收到一长串错误消息(我还没有能够输入我想要的所有设置)。这对我来说表明我缺少一些依赖项,错过了一些安装步骤,或者以某种方式没有正确使用该软件。
不幸的是,似乎没有很多关于 ELKI 的文档,但它也是我能够找到的 LSDBC 的唯一实现之一。我正在寻找的是逐步ELI5,在我的数据集(在WEKA创建的arff文件中)上安装和运行此算法并将结果输出为csv文件的说明;即一个输出文件,指示每个样本的聚类分配。我还希望能够对最佳 k 和 alpha 值执行网格搜索(即,针对 k 和 alpha 的多个值运行算法并保存每个结果;之后我将确定最佳值)。我正在使用 Mac OS X Yosemite。
我觉得这应该是一个相对简单的任务,但我一直没有取得任何进展。我已经复制了下面的错误流
gnu/trove/impl/hash/TObjectHash
java.lang.NoClassDefFoundError: gnu/trove/impl/hash/TObjectHash
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser.<init>(NumberVectorLabelParser.java:127)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser$Parameterizer.makeInstance(NumberVectorLabelParser.java:419)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser$Parameterizer.makeInstance(NumberVectorLabelParser.java:355)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:120)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.datasource.AbstractDatabaseConnection$Parameterizer.configParser(AbstractDatabaseConnection.java:184)
at de.lmu.ifi.dbs.elki.datasource.InputStreamDatabaseConnection$Parameterizer.makeOptions(InputStreamDatabaseConnection.java:136)
at de.lmu.ifi.dbs.elki.datasource.FileBasedDatabaseConnection$Parameterizer.makeOptions(FileBasedDatabaseConnection.java:123)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.database.StaticArrayDatabase$Parameterizer.makeOptions(StaticArrayDatabase.java:210)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.workflow.InputStep$Parameterizer.makeOptions(InputStep.java:94)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.KDDTask$Parameterizer.makeOptions(KDDTask.java:156)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.application.KDDCLIApplication$Parameterizer.makeOptions(KDDCLIApplication.java:79)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI.doSetParameters(MiniGUI.java:372)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI.updateParameterTable(MiniGUI.java:359)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI$5.tableChanged(MiniGUI.java:277)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at de.lmu.ifi.dbs.elki.gui.util.ParametersModel.setValueAt(ParametersModel.java:130)
at javax.swing.JTable.setValueAt(JTable.java:2741)
at javax.swing.JTable.editingStopped(JTable.java:4723)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:141)
at javax.swing.AbstractCellEditor.stopCellEditing(AbstractCellEditor.java:85)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1010)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(BasicTableUI.java:798)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
at java.awt.Component.processMouseEvent(Component.java:6532)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at [...]
Caused by: java.lang.ClassNotFoundException: gnu.trove.impl.hash.TObjectHash
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser.<init>(NumberVectorLabelParser.java:127)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser$Parameterizer.makeInstance(NumberVectorLabelParser.java:419)
at de.lmu.ifi.dbs.elki.datasource.parser.NumberVectorLabelParser$Parameterizer.makeInstance(NumberVectorLabelParser.java:355)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:120)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.datasource.AbstractDatabaseConnection$Parameterizer.configParser(AbstractDatabaseConnection.java:184)
at de.lmu.ifi.dbs.elki.datasource.InputStreamDatabaseConnection$Parameterizer.makeOptions(InputStreamDatabaseConnection.java:136)
at de.lmu.ifi.dbs.elki.datasource.FileBasedDatabaseConnection$Parameterizer.makeOptions(FileBasedDatabaseConnection.java:123)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.database.StaticArrayDatabase$Parameterizer.makeOptions(StaticArrayDatabase.java:210)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ClassParameter.instantiateClass(ClassParameter.java:234)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter.instantiateClass(ObjectParameter.java:152)
at de.lmu.ifi.dbs.elki.workflow.InputStep$Parameterizer.makeOptions(InputStep.java:94)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.KDDTask$Parameterizer.makeOptions(KDDTask.java:156)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.application.KDDCLIApplication$Parameterizer.makeOptions(KDDCLIApplication.java:79)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer.make(AbstractParameterizer.java:116)
at de.lmu.ifi.dbs.elki.utilities.ClassGenericsUtil.tryInstantiate(ClassGenericsUtil.java:252)
at de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.TrackParameters.tryInstantiate(TrackParameters.java:213)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI.doSetParameters(MiniGUI.java:372)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI.updateParameterTable(MiniGUI.java:359)
at de.lmu.ifi.dbs.elki.gui.minigui.MiniGUI$5.tableChanged(MiniGUI.java:277)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:296)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:275)
at de.lmu.ifi.dbs.elki.gui.util.ParametersModel.setValueAt(ParametersModel.java:130)
at javax.swing.JTable.setValueAt(JTable.java:2741)
at javax.swing.JTable.editingStopped(JTable.java:4723)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:141)
at javax.swing.AbstractCellEditor.stopCellEditing(AbstractCellEditor.java:85)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1010)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(BasicTableUI.java:798)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280)
at java.awt.Component.processMouseEvent(Component.java:6532)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at [...]