机器学习：使用 Python 进行预测
机器学习

> 
> 机器学习基本上是人工智能的一个子集，它使用以前存在的数据对新数据进行预测。
> 
> 
> 


当然，现在我们所有人都知道这个道理了！这篇文章展示了如何将 Python 中开发的机器学习模型作为 Java 代码的一部分来进行预测。


![Machine-learning](/data/attachment/album/202206/09/085208msb4pq48eclzee1l.jpg)


本文假设你熟悉基本的开发技巧并理解机器学习。我们将从训练我们的模型开始，然后在 Python 中制作一个机器学习模型。


我以一个洪水预测模型为例。首先，导入以下库：



```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

```

当我们成功地导入了这些库，我们就需要输入数据集，如下面的代码所示。为了预测洪水，我使用的是河流水位数据集。



```
from google.colab import files
uploaded = files.upload()
for fn in uploaded.keys(): 
    print('User uploaded file "{name}" with length {length} bytes'.format(name=fn, length=len(uploaded[fn])))

```

如果没有选择文件的话，选择上传的文件。


只有在当前浏览器会话中执行了该单元格时，上传部件才可用。请重新运行此单元，上传文件 `Hoppers Crossing-Hourly-River-Level.csv`，大小 2207036 字节。


完成后，我们就可以使用 `sklearn` 库来训练我们的模型。为此，我们首先需要导入该库和算法模型，如图 1 所示。


![Figure 1: Training the model](/data/attachment/album/202206/09/085208mduzu1b9je97j5e1.jpg)



```
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)

```

完成后，我们就训练好了我们的模型，现在可以进行预测了，如图 2 所示。


![Figure 2: Making predictions](/data/attachment/album/202206/09/085209sb8picj8nm9bn9gk.jpg)


### 在 Java 中使用 ML 模型


我们现在需要做的是把 ML 模型转换成一个可以被 Java 程序使用的模型。有一个叫做 `sklearn2pmml` 的库可以帮助我们做到这一点：



```
# Install the library
pip install sklearn2pmml

```

库安装完毕后，我们就可以转换我们已经训练好的模型，如下图所示：



```
sklearn2pmml(pipeline, ‘model.pmml’, with_repr = True)

```

这就完成了！我们现在可以在我们的 Java 代码中使用生成的 `model.pmml` 文件来进行预测。请试一试吧！


（LCTT 译注：Java 中有第三方库 [jpmml/jpmml-evaluator](https://github.com/jpmml/jpmml-evaluator)，它能帮助你使用生成的 `model.pmml` 进行预测。）




---


via: <https://www.opensourceforu.com/2022/05/using-a-machine-learning-model-to-make-predictions/>


作者：[Jishnu Saurav Mittapalli](https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
*Machine learning is basically a subset of artificial intelligence that uses previously existing data to make a prediction on new data. Of course, all of us know this by now! This article demonstrates how a machine learning model developed in Python can be used as a part of a Java code to make predictions.*

This article assumes you are familiar with the basic development skills and understanding of machine learning. We will start with training our model, and then make a machine learning model in Python.


This article assumes you are familiar with the basic development skills and understanding of machine learning. We will start with training our model, and then make a machine learning model in Python.

I am taking the example of a flood prediction model. First, import the following libraries:

import pandas as pd import numpy as np import matplotlib.pyplot as plt

Once we have successfully imported the libraries, we need to take in the data sets, as shown in the code below. To predict floods, I am using the river level data set.

from google.colab import files uploaded = files.upload() for fn in uploaded.keys(): print(‘User uploaded file “{name}” with length {length} bytes’.format( name=fn, length=len(uploaded[fn]))) Choose files No file chosen

The upload widget is only available when the cell has been executed in the current browser session. Please rerun this cell to enable* Saving Hoppers Crossing-Hourly-River-Level.csv to Hoppers Crossing-Hourly-River-Level.csv User uploaded file “Hoppers Crossing-Hourly-River-Level.csv”* with length 2207036 bytes.

Once this is done, we can train our model using the *sklearn library*. For this, we first need to import the library and the algorithm model, as shown in Figure 1.

![Training the model](https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1Training-the-model-590x89.jpg)


![Training the model](https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-1Training-the-model-590x89.jpg)

from sklearn.linear_model import LinearRegression regressor = LinearRegression() regressor.fit(X_train, y_train)

Once that is done we have trained our model, and it’s now ready to make predictions, as shown in Figure 2.

![Making predictions](https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Making-predictions-590x144.jpg)


![Making predictions](https://www.opensourceforu.com/wp-content/uploads/2022/05/Figure-2-Making-predictions-590x144.jpg)

**Using ML model in Java**

What we need to do now is to convert the ML model into a model that can be used by a Java program. There is a library called sklearn2pmml that helps us do this:

Install the library, pip install sklearn2pmml

Once the library is installed we can convert our already trained model, as shown below:

sklearn2pmml(pipeline, ‘model.pmml’, with_repr = True)

This is it! We can now use the generated model.pmml file in our Java code to make predictions. Do try it out!