java调用sklearn_机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测...

本文介绍如何在Java中调用Python的sklearn训练好的Logistic模型进行鸢尾花数据的预测。主要方法包括:通过Python解释器执行Python代码、使用PMML工具和通过Socket服务进行Python和Java间通信。重点讲解了使用PMML的方式,包括Python端生成PMML模型文件,Java端引入相关依赖并封装预测方法。
摘要由CSDN通过智能技术生成

机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法:

1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用。

2.通过PMML工具,将在sklearn中训练好的模型生成一个pmml格式的文件,在该文件中,主要包含了模型的一些训练好的参数,以及输入数据的格式和名称等信息。生成了pmml文件之后,在java中导入pmml相关的包,我们就能通过pmml相关的类读取生成的pmml文件,使用其中的方法传入指定的参数就能实现模型的预测,速度快,效果不错。

3.第二种方法因为模型已经训练好了,无法改变,不能实现在线调参的功能,我们可以通过socket服务来进行python和java之间的网络通信,python提供socket服务,java端将模型的参数通过网络传给python端,python端接受到参数之后,进行模型的训练,训练完成之后,将得到的结果返回给Java端。

下面给是使用pmml方式调用的步骤:

1.在python端生成pmml模型文件,下面以logistic回归为例

x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.85, random_state=1)

model= PMMLPipeline([('LogisticModer', LogisticRegression())])

model.fit(x_train, y_train)

y_hat=model.predict(x_test)

loss= y_hat ==y_test

accuracy=np.mean(loss)print(accuracy)

sklearn2pmml(model,'.\LogisticRegression.pmml', with_repr=True)

需要加载的包

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值