在当今的技术驱动世界中,机器学习模型的创建和部署变得日益重要。尽管可能已经构建了一个出色的预测分析模型,但如果无法向公众展示成果,那么所有的努力都将白费。一个人在使用机器学习模型时应该能够得到他们想要的输出。向一个外行人提供一堆代码是愚蠢的行为,当然不想成为那样的人。
因此,需要找到一种方法来向公众展示工作。这个问题的解决方案就是将工作以Web应用的形式部署。这有助于向公众展示工作,而不需要深入了解后端。一旦成功地部署了代码,就不需要访问后端,人们可以通过在前端输入值来获得他们想要的结果。
将专注于使用Python编程语言来部署机器学习模型,部署工具将是Flask和MicrosoftAzure。主要目的是创建一个24小时运行的Web应用,托管在基于云的服务器上。那么,让开始吧:
首先,需要创建一个名为model.py的机器学习模型,然后使用Pickle或Joblib在本地系统对模型进行序列化。让看看如何使用支持向量机分类为鸢尾花数据集创建一个简单的机器学习模型:
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
import joblib
from sklearn.datasets import load_iris
# 获取数据
iris = load_iris()
X, y = iris.data, iris.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建SVC模型
model = SVC()
# 训练模型
model.fit(X_train, y_train)
# 序列化模型
joblib.dump(model, "model.pkl")
创建了model.py文件并序列化模型后,下一步是创建一个名为app.py的FlaskWeb应用。以下是创建此应用的步骤。同时,请注意,model.py、model.pkl和app.py应该位于计算机的同一目录下。选择Flask的原因是它是一个非常轻量级的Web框架,有助于用最少的代码行创建Web应用。
from flask import Flask, request, jsonify
import joblib
app = Flask(__name__)
# 加载序列化模型
model = joblib.load("model.pkl")
@app.route("/predict", methods=["POST"])
def predict():
# 获取参数
int_features = [float(x) for x in request.form.values()]
final_features = [np.array(int_features)]
prediction = model.predict(final_features)
output = round(prediction[0], 2)
return jsonify(output)
if __name__ == "__main__":
app.run(debug=True)
现在,下一步是创建一个HTML文件,如前所述,这是在Flask中创建Web应用的先决条件,文件名为index.html,包含在templates文件夹中,位于同一目录下。
按照以下步骤将应用部署到Azure云:
1.Azure门户设置 2. 创建Web应用资源 3. 应用配置 4. 审查并创建 5. 部署中心设置 6. GitHub部署 7. 部署完成
这就是如何轻松地将任何机器学习和深度学习应用部署到Azure,并可以全球分享工作。自己去尝试吧,创造奇迹。