使用新数据测试文本分类 ML 模型失败



我已经建立了一个机器学习模型,将电子邮件分类为垃圾邮件。现在我想测试我自己的电子邮件并查看结果。所以我写了以下代码来对新电子邮件进行分类:

message = """Subject: Hello this is from google security team we want to recover your password. Please contact us 
as soon as possible"""
message = pd.Series([message,])
transformed_message = CountVectorizer(analyzer=process_text).fit_transform(message)
proba = model.predict_proba(transformed_message)[0]

知道process_text是处理电子邮件的函数,当我运行代码时,出现以下错误:

Number of features of the model must match the input. Model n_features is 37229 and input n_features is 13 

有什么问题,我该如何解决?

对于此类管道中的所有数据预处理步骤,我们再也不会适合,就像您在此处使用(新定义的(计数矢量化器所做的那样。

因此,您应该通过应用其transform方法重用现有的计数矢量化器(即与训练数据一起使用的那个(,而不是将fit_transform与新的计数矢量化器一起使用。这将允许你的新数据与训练数据的 37229 个特征(用于训练模型(进行映射,而不是当您再次将计数矢量化器拟合到如此短的文本时生成的仅 13 个特征。

最新更新