【问题标题】:Sklearn SGDC partial_fit ValueError: classes should include all valid labels that can be in ySklearn SGDC partial_fit ValueError: classes should include all valid labels that can be in y
【发布时间】:2017-10-19 22:09:53
【问题描述】:

加载了已经训练好的 SGDC 模型,并尝试再次对新的特征集和数据进行部分拟合。 但收到 ValueError: classes 应该包括可以在 y 中的所有有效标签 我的 class_weights = None 并希望每个类的权重相等。

model_predicted_networktype = joblib.load(f)
new_training_data_count_matrix 
=count_vect_predicted_networktype.transform(training_dataset)
new_training_tf_idf = tf_idf(new_training_data_count_matrix)
model_predicted_networktype.partial_fit(new_training_tf_idf,training_labels)

我遇到的问题是,我正在向我已经训练好的模型添加新特征,而这些新特征与之前拟合的不同,但我需要向已经 partial_fit 的数据添加新特征?

【问题讨论】:

  • 与功能无关。对 partial_fit() 的第一次调用应该在一个名为 classes 的参数中包含所有不同的类,即使您的实际 training_labels 只包含其中的一些。见documentation pf partial_fit() here
  • 有什么方法可以快速添加标签
  • 没有。所有可能的标签都必须在第一次调用时声明。训练数据 X, y 可能不包含当时的所有标签。请参阅示例。

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


【解决方案1】:

在您第一次调用 partial_fit 时执行 classes=numpy.arange(some_estimated_max_number) 并将数字映射到实际标签。通过这种方式,您可以即时添加数据。

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 2022-12-19
    • 1970-01-01
    • 2012-02-03
    • 2022-12-01
    • 2021-07-14
    • 2023-02-18
    • 2014-11-13
    • 2016-06-15
    相关资源
    最近更新 更多