我正在使用 Python SciKit OneClass SVM 分类器来检测文本行中的异常值。首先使用词袋和 TF-IDF 将文本转换为数字特征。
当我训练(拟合)在计算机上运行的分类器时,时间似乎随着训练集中的项目数量呈指数增长:
训练数据的项目数和训练时间:
10K:1 秒、15K:2 秒、20K:8 秒、25k:12 秒、30K:16 秒、45K:44 秒。
我可以做些什么来减少训练所需的时间,并避免当训练数据大小增加到几十万项时训练时间变得太长?
scikit 的 SVM 是一个高级实现,所以你能做的就这么多,就速度而言,从他们的网站来看,“SVM 不直接提供概率估计,这些是使用昂贵的五倍交叉验证来计算的”。
您可以根据可用 RAM 增加内核大小参数,但这种增加并没有多大帮助。
您可以尝试更改内核,尽管您的型号可能不正确。
以下是来自的一些建议http://scikit-learn.org/stable/modules/svm.html#tips-on-practical-use:扩展您的数据。
否则,不要使用 scikit 并使用神经网络自行实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)