Weka GUI和Weka通过python API的结果不同 - python

我们正在将python 2.7.12与weka 3.9.3 api(和java 1.8.0191)结合使用,尝试在一小段python代码下面使用j48分类器进行分类:

loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(data_dir + "new_ALL_FEATURES.arff")
data.class_is_last()

#seperate the data to train and test:
removeRange = 
Filter(classname="weka.filters.unsupervised.instance.RemoveRange", options= 
["-R","4951-last"])
removeRange.inputformat(data)
train = removeRange.filter(data)

removeRange = 
Filter(classname="weka.filters.unsupervised.instance.RemoveRange", options= 
["-R","first-4951"])
removeRange.inputformat(data)
test = removeRange.filter(data)
cls = Classifier(classname="weka.classifiers.trees.J48", options=["-C", 
"0.25"])
cls.build_classifier(train)

用于分类的其他详细信息选项:修剪的树,无交叉验证,数据包括23个数字特征(类别为标称),缺失值被替换。
当使用相同的文件和相同的分类器以及相同的选项([[-C],“ 0.25”,“-M”,“ 2”])运行weka GUI时
分类结果与我们从API获得的结果不同:树的结构不同,GUI树包含77个叶子,而API构建的树包含97个叶子。

我们已经搜索了类似的问题,并找到了以下链接:Different results in Weka GUI and Weka via Java code
但是,这与我们无关,因为我们没有执行交叉验证。

造成这种差异的原因是什么?我们缺少什么?请告知,在此先感谢。

参考方案

更新:我们发现了问题。
显然,当我们通过API拆分数据时,我们错过了一个样本,这造成了差异。

Python-crontab模块 - python

我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…

Python:检查是否存在维基百科文章 - python

我试图弄清楚如何检查Wikipedia文章是否存在。例如,https://en.wikipedia.org/wiki/Food 存在,但是https://en.wikipedia.org/wiki/Fod 不会,页面只是说:“维基百科没有此名称的文章。”谢谢! 参考方案 >>> import urllib >>> prin…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python Pandas导出数据 - python

我正在使用python pandas处理一些数据。我已使用以下代码将数据导出到excel文件。writer = pd.ExcelWriter('Data.xlsx'); wrong_data.to_excel(writer,"Names which are wrong", index = False); writer.…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…