【问题标题】:sklearn how to use saved model to predict new datasklearn如何使用保存的模型来预测新数据
【发布时间】:2020-09-19 13:33:55
【问题描述】:

我使用 sklearn 训练了一个 SVM 文本分类器,使用 tf-idf(TfidfVectorizer) 来提取特征。 现在我需要保存模型并加载它来预测看不见的文本。我将模型加载到另一个文件中,让我困惑的是如何提取新的文本 tf-idf 特征

【问题讨论】:

    标签: machine-learning scikit-learn svm text-classification


    【解决方案1】:

    您需要保存模型和 tfidf 转换器。您可以单独保存它们,也可以创建两者的管道并保存管道(这是首选选项)。

    例子:

    from sklearn.linear_model import LogisticRegression
    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.pipeline import Pipeline
    import pickle
    
    Tfidf = TfidfVectorizer()
    LR = LogisticRegression()
    pipe = Pipeline([("Tfidf", Tfidf), ("LR", LR)])
    pipe.fit(X, y)
    
    with open('pipe.pickle', 'wb') as picklefile:
        pickle.dump(pipe, picklefile)
    

    然后您可以加载整个管道,predict 将首先应用矢量化器,然后将其传递给模型:

    with open('pipe.pickle', 'rb') as picklefile:
        saved_pipe = pickle.load(picklefile)
    
    saved_pipe.predict(X_test)
    

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 2018-12-27
      • 2018-07-30
      • 2020-05-23
      • 2019-07-19
      • 2021-02-08
      • 2018-10-15
      • 1970-01-01
      • 2018-09-22
      相关资源
      最近更新 更多