繁体   English   中英

如何将分类机器学习 Model 从一个数据集转移到另一个数据集?

[英]How do I transfer a Classification Machine Learning Model from one data set to another?

我最近通过 sklearn 构建了一个多 class 分类机器学习 model,我想将学习从一个数据集转移到另一个数据集。

我有我们的第一方数据(我们称之为销售),其中包括数千本教科书的名称和它们所属的学科(即生物学 101(标题)是生物学(学科)教科书)。 我能够让机器根据书名相当准确地预测教科书的学科。

我现在有第二个数据集,其中包含竞争对手教科书的标题,但没有学科。 我想让机器根据它从销售数据集中学到的知识来猜测竞争对手教科书的学科。

销售机器学习 model 在销售方面运行良好。 所以这就是我想要做的:

1) 将 Sales model 的学习知识转移到竞争对手集。

2) 将该传输的结果导出到 CSV。

3)为了从销售和竞争对手中进行机器学习 model 我剥离了所有其他数据列,理想情况下我想导出两个数据集的预测规则。

如果有人能指出我关于转移我的 model 的文档的正确方向,我将不胜感激。

如果您已经熟悉scikit-learn ,那么这应该是一件容易的事。

这是一些高级伪代码:

sales_data = preprocess_data(raw_data_sales) # normalization, vectorization, etc.
model.fit(sales_data,sales_labels) # potentially with cross-validation, hyperparameter-tuning etc.

competitor_data = preprocess_data(competitor_raw_data) # same preprocessing as for train data
sales_predictions = model.predict(sales_data)
competitor_predictions = model.predict(competitor_data)
export_to_CSV(sales_predictions) # export predictions to CSV
export_to_CSV(competitor_predictions)

这里实际上不需要“迁移学习”,因为您的竞争对手数据没有任何标签。 您想要实现的目标听起来像是简单的推理。

export_to_CSV()可以是numpy ( np.savetxt() ) 或pandas ( df.to_csv() ) ZC1C425268E68385D1AB5074C17A94F map 您可以使用 scikit-learn 的LabelEncoder来回从文本到数字的非数字标签(学科)。

注意:由于您的数据来自两个不同的来源,并且您无法根据第二个来源的数据训练 model,而只能根据您自己的销售数据(因为您没有竞争对手的标签),您的 model 的性能可能比在您的销售数据上。 如果您有来自竞争对手的额外标签,那么这将是一项迁移学习任务,因为您可以使用初始 model 并继续训练。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM