如何转换自定义矢量化器以预测分类?

Posted

技术标签:

【中文标题】如何转换自定义矢量化器以预测分类?【英文标题】:How to transform customize vectorizer for predicting classification? 【发布时间】:2021-10-06 06:23:42 【问题描述】:

据我谷歌搜索,我没有找到类似的问题,或者我用错误的关键字搜索它。

我想做一个特征提取的变体。

    矢量化为普通的词袋 矢量化词袋,结合附加功能

所以对于第一种方法,我适合使用此代码转换数据集(这是我的函数的一部分。df 是数据框,vect 是 TFIDF/countvectorizer)

    self.X = self.vect.fit_transform(df.Tweet)
    self.X_columns=self.vect.get_feature_names()

所以在我建立分类模型后,我可以使用这段代码转换任何我想预测的文本。 (vect 是 TFIDF/countvectorizer,new_df 是数据帧,clf 是使用任何算法训练的构建分类器)

    text_features = vect.transform(new_df.Tweet)  
    predictions = clf.predict(text_features)

已经完成,并且可以正常工作。

所以对于第二种情况: 我用一些解决方法做了同样的事情。我在 *** 中查看了任何有用的代码,并使用此代码进行了操作。 (sp 是 scipy 库,df 是数据框)

    self.X = sp.sparse.hstack((vect.fit_transform(df.Tweet), df[['feature_1','feature_2','score','sentiment']].values), format='csr')
    self.X_columns=vect.get_feature_names() + df[['feature_1','feature_2','score','sentiment']].columns.tolist()

有效,附加功能已添加到 csr 矩阵中。

但问题是如何将 new_df 转换为矩阵? 我不知道从哪里开始尝试解决方案

【问题讨论】:

【参考方案1】:

我的猜测是

    # count/process each additional features ['feature_1','feature_2','score','sentiment']
    ...
    # then use similar method but using transform instead fit_transform
    text_features = sp.sparse.hstack((vect.transform(new_df.Tweet), new_df[['feature_1','feature_2','score','sentiment']].values), format='csr')
    predictions = clf.predict(text_features)

如果答案正确,我会更新。如果您找到更好的方法/解决方案,请分享。

【讨论】:

以上是关于如何转换自定义矢量化器以预测分类?的主要内容,如果未能解决你的问题,请参考以下文章

如何编写自定义排序器以在 UI 中按名称对 springdoc swagger 标签进行排序?

在 R 中编写自定义分类器并预测函数

创建自定义导航栏渲染器以在 xamarin 表单 IOS 项目中添加自定义后退按钮图标

Pytorch CIFAR10图像分类 自定义网络篇

keras:如何编写自定义的损失函数来聚合帧级预测到歌曲级预测

如何快速部署一个机器学习在线预测系统