从训练有素的分类器 python #Scikitlearn #SVM 进行预测

Posted

技术标签:

【中文标题】从训练有素的分类器 python #Scikitlearn #SVM 进行预测【英文标题】:Make predictions from a trained classifier python #Scikitlearn #SVM 【发布时间】:2018-10-13 04:14:31 【问题描述】:

我需要帮助对看不见的数据进行分类。我有一组样本数据。

    ID         Comment                Category
    2017_01    inadequate stock       Availability
    2017_02    Too many failures      Quality
    2017_03    no documentation       Customer Service
    2017_04    good product           Satisfied
    2017_05    long delivery times    Delivery

我已经使用这些数据训练了一个多级文本分类器。 我使用 MultinomialNB 和 SVM 测试了数据的拟合度,我选择了 SVM 作为最终模型

# Support Vector Machines - calculating the SVM Fit
from sklearn.linear_model import SGDClassifier
text_clf_svm = Pipeline([('vect', CountVectorizer()), ('tfidf', 
TfidfTransformer()),('clf-svm', SGDClassifier(loss='hinge', 
penalty='l2',alpha=1e-3, n_iter=5, random_state=42))])

text_clf_svm = text_clf_svm.fit(X_train, y_train)
predicted_svm = text_clf_svm.predict(X_train)
np.mean(predicted_svm == y_train)
0.8850102669404517

我根据今年的评论测试了模型

print(text_clf_svm.predict(["This is obsolete and being replaced by another product. not very robust and we have had many failures"]))

['质量']

问题:我如何传入 2018 年(下)的不可见数据以进行上述分类?

   ID          Comment                            Category
   2018_01     This product is obsolete 
   2018_02     Tech Support takes too long  
   2018_03     2 out of 3 products failed   
   2018_04     Delivery to APAC takes too long  

【问题讨论】:

请用文字替换所有图片。 只需将 cmets 列传递给 text_clf_svm() 并将其结果放入类别列中 谢谢Vivek,我在评论区传给ie:category= text_clf_svm(df[Comcopy]) 如何构造一个包含新预测的类别和ID的数据框?跨度> 【参考方案1】:

我刚刚找到了解决方案。如果我想将预测结果映射回原始数据框,我必须将新列添加到旧数据框

#Bring in new data and predict
import pandas as pd
df_p = pd.read_csv("comment_to_predict.csv", sep = ',', usecols = range(2), encoding='iso-8859-1')

#Map the predictions to the original data frame (df_p in my case)
df_p['category'] = text_clf_svm.predict(df_p['comment'])

【讨论】:

以上是关于从训练有素的分类器 python #Scikitlearn #SVM 进行预测的主要内容,如果未能解决你的问题,请参考以下文章

如何从 python 输出 RandomForest 分类器?

从分类器中检索训练特征名称列表

使用Pytorch训练分类器详解(附python演练)

如何用OpenCV训练自己的分类器

如何用OpenCV训练自己的分类器

我如何从两个已经训练好的分类器中构建一个分类器?