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