我正在尝试使用 Scikit learn 中的 SVM 对我收集的推特进行分类。因此,将有两个类别,分别命名为 A 和 B。目前,我已经将所有推特分类在两个文本文件 'A.txt' 和 'B.txt' 中。但是,我不确定 Scikit Learn SVM 需要什么类型的数据输入。我有一个字典,其中标签 (A 和 B) 是其键,特征 (单词的频率) 是其值。抱歉,我真的很新于机器学习,不确定我应该做什么才能让 SVM 正常工作。我发现 SVM 使用 numpy.ndarray 作为其数据输入的类型。我需要根据自己的数据创建一个吗?是否应该像这样:
Labels features frequency
A 'book' 54
B 'movies' 32
感激任何帮助。
SVC(kernel='linear')
可能足够快地收敛。然而,它应该给出与LinearSVC
相似的预测性能,并且与LogisticRegression
可比较的性能(两者都应该更快并且可以扩展到数十万个样本)。对于每种情况,您需要通过交叉验证选择最佳的C值。此外,默认情况下LogisticRegression
提供良好的概率估计(使用predict_proba
方法)。这就是为什么我建议您默认使用线性模型而不是通用的SVC
。 - ogriselkernel='rbf'
时才真正有趣。文本分类问题往往几乎是线性可分的,特别是如果您使用双字母特征。因此,LinearSVC和LogisticRegression倾向于是这类问题的更好选择。 - ogrisel