本帖最后由 inuyasha01 于 2020-4-6 17:03 编辑


有没有想过有一天你可以在Minecraft里
实现机器学习算法
分类 or 聚类 or 大数据挖掘?
/.../
.
由于当下对于 实体/tiles 的统计分析插件并不太好找

基础的实体清理/扫地大妈,也只是扫了地,并没有对数据进行统计和分析

所以那到底   我服务器哪里最卡????

MCdataMining - v1.0.0 给你答案


当前版本实现了最基础的 DBSCAN密度聚类算法
大概原理就是  哪里扎堆的东西越多,哪里就会被这个算法给查出来
(比如大型刷怪场 / 大型红石机器/ 刷石机刷铁厂... / 过大的生存建筑包含过量的tiles等)
(也比如我服务器里玩家造的AE刷煤机有着每分钟10000+掉落物的产量。。
以至于在写插件之前我一度还以为是服务器疯了。。。)
然后统计扎堆的中心点,
以便于你传过去 看看卡你服务器的贼窝到底长什么样
如果你有兴趣,那这里是DBSCAN算法详细解说

所以,还是算法厉害嘛。。


对于咱们的MCdataMining,详细的来说,目前 1.0.0版本实现了如下内容:

对于所有单独世界:
tiles统计   DBSCAN聚类   密度分析
掉落物统计  DBSCAN聚类   密度分析
生物实体统计   DBSCAN聚类   密度分析
(后台console可直接调取返回值)

看到这里,你可能要问
为什么还要多做个 tiles聚类?

因为tiles就是FPS杀手
(对服务器性能同时也会有影响)
详情参见jiongjionger的知乎,让你了解tiles到底都包括什么,怎么卡:
...
于是咱们写出了...
其实很多MOD物品也属于tiles的, 你可以用JEI或者walia观察下它的class

所以所以。。。这也是为什么,咱们统计tiles 分析,聚类
找到它的密集点,这对于服务器优化来说,是这么重要了。


使用说明
开始写的时候没起名就用了自己的简称...
所以前面那张图的sf指令无须在意,咱们现版本 一律用dm指令


实机测试

权限相关
默认OP使用,因为跑算法多少要点服务器算力
(虽然我自己的Cat服跑一次大概也就1-5秒)



版本测试与支持
虽说是支持 1.8 - 1.12 的 Spigot 和 CatServer
但其实写的时候Spigot的API看的是 1.15 的
所以后续版本,欢迎测试。


代码问题
其实对Java的继承还不熟悉,需要继续加油。
代码也只是能跑的阶段,但起码效率不低占用也不高,
只是在代码层面,未来优化的路还长


开源与下载
API也不是什么复杂的,算法这些,你在git上也是一抓一把
所以服主朋友们,这个程序的源码也请拿好
希望你在看懂以后,能学到新的东西,得到启发,
也希望对我的代码质量提提意见,哪里需要优化,哪里可以省去。
这对我也真的很重要。
( TロT)σ~
知识在于分享和交流
希望你能在我的git页面上多多commit
多多评分,
也希望在MCdataMining的陪伴下,你我的服务器能万古长青


未来更新
当下各个聚类算法其实都有自己的优缺点
比如k-means适合球形类
而DBSCAN更适合奇奇怪怪的形状
所以现实情况下服务器的实体分布,也不一定全是球形
于是这也是为什么先实现了DBSCAN
速度快,效果好,自动决策类别总数(不像k-means),还可以排除噪点
具体算法对比见下图
当然后期也会补上一些其他算法,从而能够应对各种不同的情况
(引用:sklearn聚类算法结果对比)

其余的也要等你的意见和测试啦~
不过1.1版本会写调参机制的!后面还会再完善下系统和语言支持

等忙完手头的活,继续更新
1.1期望产出:
DBSCAN调参机制
漏斗聚类
红石聚类
tp功能修复

1.2期望产出:
输出流在后台输出服务器聚类散点图
谱聚类测试
卸载高产但无人的区块?(雾)






实现不易,望君一评分



本插件所用所有代码均为原创,不存在借用/抄袭等行为