機器學(xué)習(xí):使用 Python 進行預(yù)測
機器學(xué)習(xí)基本上是人工智能的一個子集,它使用以前存在的數(shù)據(jù)對新數(shù)據(jù)進行預(yù)測。
當(dāng)然,現(xiàn)在我們所有人都知道這個道理了!這篇文章展示了如何將 Python 中開發(fā)的機器學(xué)習(xí)模型作為 Java 代碼的一部分來進行預(yù)測。
本文假設(shè)你熟悉基本的開發(fā)技巧并理解機器學(xué)習(xí)。我們將從訓(xùn)練我們的模型開始,然后在 Python 中制作一個機器學(xué)習(xí)模型。
我以一個洪水預(yù)測模型為例。首先,導(dǎo)入以下庫:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
當(dāng)我們成功地導(dǎo)入了這些庫,我們就需要輸入數(shù)據(jù)集,如下面的代碼所示。為了預(yù)測洪水,我使用的是河流水位數(shù)據(jù)集。
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])))
如果沒有選擇文件的話,選擇上傳的文件。
只有在當(dāng)前瀏覽器會話中執(zhí)行了該單元格時,上傳部件才可用。請重新運行此單元,上傳文件 ??Hoppers Crossing-Hourly-River-Level.csv?
?,大小 2207036 字節(jié)。
完成后,我們就可以使用 ??sklearn?
? 庫來訓(xùn)練我們的模型。為此,我們首先需要導(dǎo)入該庫和算法模型,如圖 1 所示。
Figure 1: Training the model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
完成后,我們就訓(xùn)練好了我們的模型,現(xiàn)在可以進行預(yù)測了,如圖 2 所示。
Figure 2: Making predictions
在 Java 中使用 ML 模型
我們現(xiàn)在需要做的是把 ML 模型轉(zhuǎn)換成一個可以被 Java 程序使用的模型。有一個叫做 ??sklearn2pmml?
? 的庫可以幫助我們做到這一點:
# Install the library
pip install sklearn2pmml
庫安裝完畢后,我們就可以轉(zhuǎn)換我們已經(jīng)訓(xùn)練好的模型,
sklearn2pmml(pipeline, ‘model.pmml’, with_repr = True)
這就完成了!我們現(xiàn)在可以在我們的 Java 代碼中使用生成的 ??model.pmml?
? 文件來進行預(yù)測。請試一試吧!
(LCTT 譯注:Java 中有第三方庫 ??jpmml/jpmml-evaluator??,它能幫助你使用生成的 ??model.pmml?
? 進行預(yù)測。)