使用SciKitLearn的RandomForestClassification对分类数据进行预测

我使用SkLearn创建了一个RandomForestClassification模型,使用了10个不同的文本特征和10000个训练样本。然后,我将模型进行了序列化(76mb),希望能用它来进行预测。

然而,为了生成随机森林,我使用了LabelEncoder和OneHotEncoder来处理分类/字符串数据,以获得最佳效果。

现在,我想加载这个序列化模型,并对一个实例进行分类预测。然而,我不确定如何在不重新加载整个训练和测试数据集CSV文件并重新进行整个编码过程的情况下,对单个实例的文本进行编码。

每次都加载CSV文件似乎非常繁琐。我希望每小时能运行1000次,所以这样做似乎不太合理。

有没有一种方法可以快速对给定序列化模型或其他变量/设置的一行数据进行编码?编码是否总是需要所有数据?

如果加载所有训练数据是编码单行数据所必需的,那么将文本数据自己编码到数据库中是否有优势?每个特征分配到一个表中,自动递增一个数字ID,并在文本/分类字段上设置一个UNIQUE键,然后将这个ID传递给RandomForestClassification?显然,我需要重新拟合并序列化这个新模型,但这样我就可以确切知道新行的(编码)数字表示,并简单地请求对这些值的预测。

我很可能遗漏了一些功能或误解了SkLearn或Python,我才刚开始学习三天。请原谅我的无知。


回答:

使用Pickle,你应该保存你的Label和One Hot Encoder。然后你每次都可以读取这些编码并轻松转换新实例。例如,

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注