我使用python scikit-learn在我的研究中使用了ML方法。我发现SVM和逻辑回归分类器效果最好(例如:85%的准确率(,决策树的效果明显更差(65%(,然后朴素贝叶斯的效果明显更差(40%(。
我将写下结论来说明一些 ML 分类器比其他分类器工作得更好,但是基于这些观察,我还能对我的学习任务或数据结构说些什么呢?
版:
数据集涉及 500,000 行,我有 15 个特征,但其中一些特征是某些文本的子字符串的各种组合,因此它自然会作为稀疏矩阵扩展到数万列。我使用人们的名字来预测一些二元类(例如:性别(,尽管我从名称实体中做了很多工程师,比如名字的长度、名字的子字符串等。
我建议您访问这张很棒的地图,了解scikit-learn团队选择正确的估算器 http://scikit-learn.org/stable/tutorial/machine_learning_map
因为描述你自己案件的细节将是一项艰巨的任务(我完全理解你没有这样做!我鼓励你问自己几个问题。因此,我认为"选择正确的估计器"的地图是一个良好的开端。
从字面上看,转到地图中的"开始"节点并遵循路径:
- 我的样本数量是否> 50?
等等。最后,您可能会在某个时候结束,看看您的结果是否与地图中的建议匹配(即,我最终是否进入了 SVM,这给了我更好的结果?如果是这样,请更深入地了解文档并问问自己为什么一个分类器在文本数据或您获得的任何见解上表现更好。
正如我告诉您的,我们不知道您的数据的细节,但您应该能够提出这样的问题:我拥有什么类型的数据(文本、二进制等(,有多少样本,要预测多少类,......因此,理想情况下,您的数据将为您提供有关问题上下文的一些提示,因此为什么某些估计器比其他估计器表现更好。
但是,是的,您的问题在单个答案中掌握起来真的很广泛(特别是不知道您正在处理的问题类型(。例如,您还可以检查是否有任何更倾向于过度拟合的方法。
建议列表可能是无穷无尽的,这就是为什么我鼓励您开始定义您正在处理的问题类型和您的数据(加上样本数量,它是否标准化?是分散的吗?您是否在稀疏矩阵中表示文本,您的输入是否从 0.11 浮动到 0.99(。
无论如何,如果您想分享有关数据的一些细节,我们也许可以更准确地回答。希望这有所帮助,虽然;)