我对任何有关如何训练一个非常有限的正数集和一个很大的负数集的技巧感兴趣。
我有大约40个正面示例(有关特定主题的冗长文章),以及大约19,000个负面样本(大部分摘自sci-kit学习新闻组数据集)。我也可以使用大约1,000,000条推文。否定集合与肯定集合的大小会对训练分类器产生负面影响吗?
我想在sci-kit学习中使用交叉验证。我需要将其分解为train / test-dev / test set吗?知道sci-kit中有一些预建的库。您推荐或以前使用的任何实现示例都将有所帮助。
谢谢!
最佳答案
第一个问题的答案是肯定的,它将影响您的结果的数量取决于算法。我的建议是密切注意基于类的统计信息,例如召回率和精确度(在classification_report
中找到)。
对于RandomForest()
,您可以查看this thread,其中讨论了
样品重量参数。一般来说sample_weight
是什么
您在scikit-learn
中寻找。
对于SVM
,请查看this example或thisexample。
对于NB
分类器,这应该由贝叶斯隐式处理
规则,但是在实践中,您可能会看到一些不良的表现。
对于第二个问题,有待讨论,我个人将数据分为训练和测试分组,对训练集执行交叉验证以进行参数估计,对所有训练数据进行再训练,然后对我的测试集进行测试。但是,您拥有的数据量可能会影响分割数据的方式(更多数据意味着更多选择)。
关于machine-learning - 在Sci-kit Learn中使用小样本集进行机器学习实验设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35345280/