【发布时间】:2017-06-08 13:34:14
【问题描述】:
我有一个包含大约 10,000 条推文的样本,我想将它们分类为“相关”和“不相关”类别。我正在为这个模型使用 Python 的 scikit-learn。我手动将 1,000 条推文编码为“相关”或“不相关”。然后,我运行了一个 SVM 模型,使用 80% 的手动编码数据作为训练数据,其余的作为测试数据。我获得了不错的结果(预测准确度约为 0.90),但为了避免过度拟合,我决定对所有 1000 条手动编码的推文使用交叉验证。
下面是我在获取示例中推文的 tf-idf 矩阵后的代码。 “target”是一个数组,列出推文是被标记为“相关”还是“不相关”。
from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import cross_val_predict
clf = SGDClassifier()
scores = cross_val_score(clf, X_tfidf, target, cv=10)
predicted = cross_val_predict(clf, X_tfidf, target, cv=10)
使用此代码,我能够预测 1,000 条推文所属的类别,并且可以将其与我的手动编码进行比较。
为了使用我的模型对我没有手动编码的其他约 9,000 条推文进行分类,我一直在思考下一步该做什么。我想再次使用cross_val_predict,但我不确定第三个参数应该放什么,因为我想预测的是类。
提前感谢您的所有帮助!
【问题讨论】:
标签: python twitter machine-learning scikit-learn classification