我已经构建了一个分类器,并在标记数据上进行了训练和测试。现在我想通过对一个没有标签的数据集进行预测来进一步测试它。我自己知道这些标签,但我为了测试的目的想要移除它们,并希望它能打印出预测值为0的结果,以便我自己比较准确性。我使用以下代码来遍历我的数据集,并对DataFrame中的每一行进行预测;
malware = set()for index, row in dataset.iterrows(): res = clf.predict([row]) if res == 0: malware.add(index)print(malware)f.write(str(malware) + "\n")
看起来它运作正常,但是这个过程并不快,有没有更好的方法或者我可以做些什么来加速它?
回答:
经过一番努力,我已经将@人名的评论转变成了一个可行的答案,并且速度快了很多。我的新代码是;
from collections import OrderedDictmalware = []malware.append(OrderedDict.fromkeys(dataset.index[clf.predict(dataset) == 0]))print (malware)
非常感谢@人名!