機器學習:使用 Python 進行預測
機器學習基本上是人工智能的一個子集,它使用以前存在的數據對新數據進行預測。
當然,現在我們所有人都知道這個道理了!這篇文章展示了如何將 Python 中開發的機器學習模型作為 Java 代碼的一部分來進行預測。
本文假設你熟悉基本的開發技巧并理解機器學習。我們將從訓練我們的模型開始,然后在 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
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
完成后,我們就訓練好了我們的模型,現在可以進行預測了,如圖 2 所示。
Figure 2: Making predictions
在 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??,它能幫助你使用生成的 ??model.pmml?
? 進行預測。)