gpt4 book ai didi

python-3.x - 对新的线性 SVM 数据帧进行分类时出错

转载 作者:行者123 更新时间:2023-11-30 09:39:10 24 4
gpt4 key购买 nike

我使用线性 SVM 创建了一个多类分类模型。但我无法对新加载的数据框进行分类(我的基础必须进行分类),我有以下错误。

我应该如何将新文本(df.reason_text)转换为 TFID 并使用我的模型进行分类(调用 model.prediction(?))?

训练模型

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(ngram_range=(1,2), stop_words=stopwords)
features = tfidf.fit_transform(training.Description).toarray()
labels = training.category_id

model = LinearSVC()
X_train, X_test, y_train, y_test, indices_train, indices_test = train_test_split(features, labels, training.index, test_size=0.33, random_state=0)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

现在我无法将新数据框转换为分类

按分类加载新数据框

from pyathena import connect
import pandas as pd
conn = connect(s3_staging_dir='s3://athenaxxxxxxxx/result/',
region_name='us-east-2')
df = pd.read_sql("select * from data.classification_text_reason", conn)

features2 = tfidf.fit_transform(df.reason_text).toarray()
features2.shape

在我使用 TFID 转换新数据框文本并对其进行排序后,我收到以下消息

y_pred1 = model.predict(features2)

错误

ValueError: X has 1272 features per sample; expecting 5319

'

最佳答案

当您加载新的 DF 进行分类时,您将再次调用 fit_tranform(),但您应该只调用 transform()。

fit_transform() description : 学习词汇和idf,返回term-document矩阵。

变换()description :将文档转换为文档术语矩阵。

您需要使用训练算法时创建的变压器,因此代码为:

tfidf.transform(df.reason_text).toarray()

如果特征形状仍然存在错误,则数组的形状可能存在问题。解决变换部分,如果仍然出现错误,请以数组格式发布训练示例和测试数据,我会继续提供帮助。

关于python-3.x - 对新的线性 SVM 数据帧进行分类时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com