You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向训练好的多标签SVM分类器输入未知数据?

没问题,我来帮你搞定怎么把未知电影数据集输入到你选定的SVM多标签分类器里。先给你梳理清楚步骤,还要顺便修正你训练代码里的一个小问题,避免后续预测出问题:


第一步:修正你的训练代码(关键!)

你之前的循环训练代码会每次覆盖SVC_pipeline变量,最后只保留最后一个genre的模型,没法同时预测所有标签。我们可以调整成一次性训练多标签分类器的方式,更高效且易维护:

# 定义多标签SVM Pipeline(把特征提取和模型打包在一起)
multi_label_SVC = Pipeline([
    ('tfidf', TfidfVectorizer(stop_words='english')),
    ('clf', OneVsRestClassifier(LinearSVC(), n_jobs=1)),
])

# 训练模型,目标变量是所有genre列
multi_label_SVC.fit(x_train, train[genres])

# 可选:在测试集上验证每个标签的准确率
test_predictions = multi_label_SVC.predict(x_test)
for idx, genre in enumerate(genres):
    print(f'Genre: {genre}, Test Accuracy: {accuracy_score(test[genre], test_predictions[:, idx])}')

这样训练出来的multi_label_SVC可以直接预测所有标签,不用重复训练多个模型。


第二步:预处理未知数据集

未知数据集必须和训练集做完全相同的文本预处理,不然模型会失效。假设你的未知数据集叫unknown_movies.csv,包含title和plot两列:

# 读取未知数据集
unknown_df = pd.read_csv("unknown_movies.csv")
# 重命名列,和训练集保持一致(如果列名不同的话)
unknown_df.rename(columns={'plot':'plot_text'}, inplace=True)
# 应用你之前定义的clean_text函数清洗剧情文本
unknown_df['plot_text'] = unknown_df['plot_text'].map(lambda com : clean_text(com))
# 提取特征列(和训练时一致,只用plot_text)
x_unknown = unknown_df['plot_text']

第三步:用训练好的SVM分类器预测未知数据

直接用训练好的multi_label_SVC预测即可,结果会是一个二维数组——每行对应一部电影,每列对应一个genre的预测标签(0表示不属于该类别,1表示属于):

# 预测未知数据
unknown_predictions = multi_label_SVC.predict(x_unknown)

# 把预测结果转换成DataFrame,方便查看和保存
predictions_df = pd.DataFrame(unknown_predictions, columns=genres)
# 和原未知数据集合并,得到带标签的完整数据
final_result = pd.concat([unknown_df[['title', 'plot_text']], predictions_df], axis=1)

# 查看前5条结果
print(final_result.head())
# 可选:保存标注好的数据到CSV
final_result.to_csv("labeled_movies.csv", index=False)

补充小提示

  • 训练时用的Pipeline会自动保留训练阶段的TF-IDF词汇表,预测时不用重新拟合,完美避免了「训练/预测预处理不一致」的常见坑。
  • 如果你的未知数据集列名和训练集差异较大,一定要先调整成一致的(比如把剧情列统一命名为plot_text)。
  • 如果你坚持要保留原来的「每个genre单独训练」方式,建议把每个genre的模型存进字典(比如genre_models = {}),循环训练时genre_models[genre] = SVC_pipeline.fit(...),预测时再循环调用对应模型合并结果,但显然一次性训练多标签的方式更简洁。

内容的提问来源于stack exchange,提问作者Chat Peters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:31:36