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

如何从加载的Multinomial NB模型中获取训练数据的TF-IDF稀疏矩阵?

获取训练数据经TfidfTransformer处理后的稀疏矩阵

要从加载后的Pipeline模型clf中得到训练数据Train_X_NB经过TfidfTransformer处理后的稀疏矩阵,有两种直接可行的方法:

方法一:利用Pipeline切片调用transform

Pipeline支持按步骤切片,取到TfidfTransformer在内的所有预处理步骤(排除最后一个分类器步骤),直接对原始训练数据执行转换:

# 需确保能获取原始训练数据Train_X_NB
tfidf_matrix = clf[:-1].transform(Train_X_NB)

这里clf[:-1]代表提取Pipeline中除最后一个MultinomialNB分类器外的所有预处理流程,调用transform后就能输出经过CountVectorizer和TfidfTransformer处理后的稀疏矩阵。

方法二:逐个调用步骤的transform

通过named_steps属性可以直接访问Pipeline里的每个组件,依次执行转换操作:

# 先通过CountVectorizer转换原始训练数据
count_matrix = clf.named_steps['vect'].transform(Train_X_NB)
# 再用TfidfTransformer处理得到目标稀疏矩阵
tfidf_matrix = clf.named_steps['tfidf'].transform(count_matrix)

注意:两种方法都需要你能获取到原始训练数据Train_X_NB,因为Pipeline仅保存各步骤的模型参数,不会存储训练数据的转换结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:42:11