保存和跨平台使用sklearn机器学习库训练的模型的方法

       主要通过标准化预测模型编辑语言PMML进行格式化保存,以XML描述的文件保存在磁盘,实现数据挖掘模型的可移植性。

本文以如下简单的逻辑回归模型训练的例子进行相关说明,训练模型python代码如下:

from sklearn.linear_model import LogisticRegression

from sklearn import datasets

clf = LogisticRegression()   #逻辑回归算法

iris = datasets.load_iris()    #引入sklearn内置测试数据

X, y = iris.data, iris.target   #构造特征列与目标列

clf.fit(X, y)                           #模型训练

1.常用数据挖掘模型保存及加载预测的方法

(1)使用python内置的pickle 库以pkl文件保存模型,代码示例如下:

 import pickle 

   with open("model.pkl", "wb") as f:

      pickle.dump(clf, f)      #以二进制可写模式打开

   clf2 = pickle.loads(model.pkl )    #加载模型

   print(clf2.predict(X[0:1]))      #打印模型预测结果

(2)使用sklearn内置的joblib库以pkl文件保存模型,代码示例如下:

from sklearn.externals import joblib  

   joblib.dump(clf, "model/model.pkl")    #保存在model目录下

   clf3 = joblib.load("model/model.pkl")    #加载模型

   print(clf3.predict(X[0:1]))        #打印模型预测结果

(3)使用sklearn2pmml插件以pmml文件保存模型,代码示例如下:

from sklearn2pmml import PMMLPipeline, sklearn2pmml  

   pipeline = PMMLPipeline([("classifier", clf)])     #创建模型管道

   pipeline.fit(X, y)                   #训练模型

   sklearn2pmml(pipeline, "model/model.pmml")     #导出模型

   pipeline.load("model/model.pmml")                   #加载模型

   print(pipeline.predict("model/model.pmml"))    #打印模型预测结果

2.模型跨平台使用

为支持模型跨平台使用,需要将模型以PMML文件导出保存,然后供其它平台调用。这里以java调用模型使用为例进行介绍:

标准化预测模型编辑语言PMML提供了相关插件支持模型的跨平台调用,相关插件可在Maven公共仓库或GitHub搜索“jpmml”获取,java调用模型主要使用jpmml-pmml-evaluator与jpmml-pmml-evaluator-extension两个插件包,均可通过maven引入项目,最新版本插件调用模型pmml文件获取模型信息的主要部分代码示例如下:

File file = new File("model.pmml")

Evaluator evaluator = new LoadingModelEvaluatorBuilder().load(file).build();

evaluator.verify();    //模型自检

List<JSONObject> inputs = new ArrayList<>();      //模型输入列(特征)详情
for (InputField inputField : evaluator.getInputFields()) {
  JSONObject input = new JSONObject();
  input.put("dataType", inputField.getDataType().value().toUpperCase());
  input.put("name", inputField.getName().getValue());
  inputs.add(input);
}
List<JSONObject> outputs = new ArrayList<>();    //模型输出列详情
for (OutputField outputField : evaluator.getOutputFields()) {
  JSONObject ouput = new JSONObject();
  ouput.put("dataType", outputField.getDataType().value().toUpperCase());
  ouput.put("name", outputField.getName().getValue());
  ouput.put("value",outputField.getField().getValue().toString());
  outputs.add(ouput);
}
List<JSONObject> targets = new ArrayList<>();    //模型目标列详情
for (TargetField targetField : evaluator.getTargetFields()) {
  JSONObject target = new JSONObject();
  target.put("dataType", targetField.getDataType().value().toUpperCase());
  target.put("name", targetField.getName().getValue());
  targets.add(target);
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Sklearn训练模型后,可以使用joblib保存模型使用pickle也可以保存模型。在使用保存模型进行预测时,需要加载模型使用predict方法进行预测。在不同的环境下使用sklearn模型做预测时,需要确保环境中已经安装了sklearn及其依赖。 ### 回答2: Sklearn是一个用于机器学习的Python,它提供了各种机器学习算法和工具,方便用户进行模型训练保存使用。 首先,使用Sklearn训练模型的步骤如下: 1. 导入所需的模型类和数据集。 2. 创建模型对象并设置相应的参数。 3. 使用训练数据对模型进行训练,即调用模型的fit()函数,并将训练数据作为参数传入。 4. 模型训练完成后,可以对其进行评估,如计算模型在测试数据上的准确率、精确率等指标。 接下来,我们可以将训练好的模型保存起来,以便后续使用Sklearn提供了两种保存模型的方式: 1. 使用pickle模块保存模型对象。可以使用pickle的dump函数将模型对象保存为二进制文件,或使用load函数加载模型对象。 2. 使用joblib模块保存模型对象。可以使用joblib的dump函数将模型对象保存为压缩文件,或使用load函数加载模型对象。joblib在处理大型数据集时更高效。 在不同的环境下使用Sklearn模型进行预测也很简单。只需按照以下步骤操作: 1. 导入所需的模型类和数据集。 2. 加载已保存模型对象。如果使用pickle保存模型,则使用pickle的load函数加载模型对象;如果使用joblib保存模型,则使用joblib的load函数加载模型对象。 3. 使用加载后的模型对象对新数据进行预测。调用模型的predict()函数,并将新数据作为参数传入。 4. 获取预测结果,进行后续的数据分析和处理。 总之,Sklearn提供了方便易用的工具和接口,可以简化机器学习模型训练保存使用过程,帮助用户快速构建和应用机器学习模型。 ### 回答3: 在使用Sklearn进行模型训练时,我们首先需要导入相应的模型,例如线性回归、决策树、支持向量机等。接着,我们可以使用数据集对模型进行拟合,即用数据集中的数据训练模型,得到最优的参数。训练完成后,我们可以使用测试数据对模型的性能进行评估,通过指标如均方误差或准确率,评估模型的好坏。 当我们训练模型后,可以将模型保存下来,方便后续的使用使用sklearn的joblib可以很方便地保存和加载模型,只需使用joblib.dump()将模型保存到磁盘文件中,并指定文件的路径和名称。保存后的模型可以在之后的任何时间加载出来,用于预测新的数据。 在不同的环境下使用sklearn模型进行预测,首先需要导入之前保存模型。然后,我们需要将待预测的新数据做预处理,确保和训练数据的特征格式一致。接着,可以使用加载出来的模型对新数据进行预测。预测的结果可以是连续值或离散值,具体根据不同的模型而定。 在使用sklearn进行预测时,需要注意的是,预测的数据应具有与训练数据相同的特征数量和顺序,且特征的取值范围应在训练数据的范围内。另外,对于一些模型,如决策树,可能需要对特征进行独热编码等处理。 总结而言,通过Sklearn训练模型保存模型以及在不同环境下使用模型进行预测,我们可以快速、方便地应用机器学习算法解决实际问题。Sklearn提供了丰富的模型和工具,使得我们能够灵活地选择和使用合适的模型,并实现高效的预测和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值