Machine learning LOF的不同运行时
我使用Elki运行LOF算法,但每次我在Elki中运行LOF算法时,Elki都会在同一数据集上给出不同的运行时间。Machine learning LOF的不同运行时,machine-learning,data-mining,elki,Machine Learning,Data Mining,Elki,我使用Elki运行LOF算法,但每次我在Elki中运行LOF算法时,Elki都会在同一数据集上给出不同的运行时间。 我很困惑为什么会发生这种情况?正如@Anony mouse在评论中提到的,很难获得可靠的运行时值 这不是ELKI特有的——LOF算法不涉及随机性,因此可以假设每次都得到相同的运行时。但实际上,你并不是每次都能得到相同的结果 以下是关于获得更可靠运行时的一些提示: 不要在同一过程中运行多个实验。为每个JVM启动一个新JVM(否则,它可能必须在某个时候对上一次运行的对象进行垃圾收集)
我很困惑为什么会发生这种情况?正如@Anony mouse在评论中提到的,很难获得可靠的运行时值 这不是ELKI特有的——LOF算法不涉及随机性,因此可以假设每次都得到相同的运行时。但实际上,你并不是每次都能得到相同的结果 以下是关于获得更可靠运行时的一些提示:
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
我的CPU有一个3.4GHz的基本时钟,但可以提升到3.9GHz。这是15%的速度,但它不能运行3.9千兆赫时,使用所有的核心。根据运行的线程数,实际时钟可能是3.4、3.7、3.8、3.9 GHz;它甚至可以暂时决定将油门降到甚至1.6GHz。因此,您甚至可能需要监控CPU时钟速度(例如,请参阅grep“^CPU MHz”/proc/cpuinfo
)。但一定要禁用涡轮增压-verbose
。日志记录对运行时有显著影响KDDCLIApplication-dbc.in file.csv-algorithm…
,允许您从控制台运行实验,而无需GUI开销-resultandler discardsresultandler
放弃实际结果;并从-time
日志中获取时间(日志应该只有几行长;避免输出过多)差别有多大?您意识到运行时会因GUI、IO、垃圾收集、CPU的热节流和许多其他因素而有所不同?每次运行时3329ms apprx的差异以及差异也会有所不同。不,我不知道这些因素。总共是多少?一次我运行Elki时的运行时间是62581毫秒,但第二次运行时的运行时间是65910毫秒,所以两者的差异是33295%,比我预期的要大,但Java和现代CPU并不令人惊讶。您的CPU可能能够将其时钟速度提高10%,但由于温度原因,它可能无法维持很长时间。我不应该使用“Elki CLI”?是的,使用命令行界面更可靠,因为您每次都有一个新的JVM,并且没有UI开销。给定参数“dbc.in”的文件数据\synthetic\Vorlesung\mickey-mouse.csv不存在!我不知道政府如何处理这个问题。请指导。未处理以下参数:[data/synthetic/Vorlesung/mickey mouse.csv]以下配置错误阻止了执行:参数“dbc.in”的给定文件data\synthetic\Vorlesung\mickey-mouse.csv不存在!实例化内部类时出错:de.lmu.ifi.dbs.elki.workflow.InputStep由于配置错误而停止执行。这是eclipse显示的完整错误,我刚刚导入了elki项目并与gradle进行了同步,然后点击run按钮,eclipse显示了上述错误,github上也没有找到mickey-mouse.csv。是的,因为文件已重命名。您需要修复文件名。