使用Django建造机器学习应用-Kdnuggets
2025-09-26 14:00:54
本指南提供了将机器学习模型集成到Django Web应用程序中的全面练习,特别是通过创建Iris Flower预测器。以下是涵盖的关键步骤和组件:### 1。设置环境 - **依赖项**:确保您已安装了Python以及“ PIP”用于包装管理。 - ** Django安装**:使用PIP安装Django(`pip install django`)。 - **数据库设置**: - 初始化一个新的Django项目:`django-admin startproject ml_project` - 在项目中创建一个应用程序:`python manage.py startapp iris_predictor`### 2。培训和保存模型 - **模型创建**:使用Scikit-Learn或任何其他首选框架等库来训练您的机器学习模型。 - **序列化**: - 将训练的模型保存到文件(例如`iris_model.pkl`)。 - 使用Joblib或Pickle进行序列化:`joblib.dump(型号,'iris_model.pkl')`。### 3。django应用结构 - **项目和应用结构**:通过适当的目录结构组织您的项目和应用程序。````````ml_project/iris_predictor/__init__.pyadmin.pyapps.py模型tests.pyurls.pyViews.pyforms.pyservices.py````````### 4。模型预测服务 - **服务文件**:创建一个``services.py''来处理模型预测。``python导入约伯利布DEF预测(功能):型号= joblib.load('iris_model.pkl')预测= model.predict([[功能])返回预测[0]````````### 5。django浏览和表格 - **表格**:以```forms.s.py''定义表单类。``python从django导入表格iRisform类(forms.form):sepal_length = forms.floatfield()sepal_width = forms.floatfield()petal_length = forms.floatfield()petal_width = forms.floatfield()```````` - **视图**:实施视图以处理表单提交和API请求。``python从django.http导入jsonresponse,httpresponsebadrequest来自django.shortcuts导入渲染从.forms导入IRISFORM从.Services导入预测DEF HOME(请求):返回渲染(请求,“预测器/precadion_form.html”,{“ form”:irisform()})@require_http_methods([“ post”])def preadive_view(请求):form = iRisform(请求。post)如果不是form.is_valid():返回渲染(请求,“预测器/preadive_form.html”,{“ form”:form})data = form.cleaned_data预测=预测([data [“ sepal_length”],data [“ sepal_width”],data [“ petal_length”],data [“ petal_width”]]])结果= {“ class_name”:预测}返回渲染(要求,“预测器/preceptir_form.html”,{“ form”:irisform(),“结果”:结果,“提交”:true},)```````` - ** API端点**:``python@csrf_exemptdef predict_api(请求):如果request.method =='post':尝试:有效载荷= json.loads(request.body)功能= [pareload.get(“ sepal_length”),paryload.get(“ sepal_width”),payload.get(“ petal_length”),pareload.get(“ petal_width”)]预测=预测(功能)返回jsonresponse({“ class_name”:预测})除例外为E:返回httpresponsebadrequest(str(e))````````### 6。django模板 - ** html模板**:在`predive_form.html`中创建一个html表单。````html
iris预测
{如果结果%}预测类:{{result.class_name}}{%endif%}````````### 7。django URL - ** URL配置**:在`urls.py'中定义URL模式。``python来自django.urls导入路径从.Views导入HOME,PRODUCT_VIEW,PRODUCT_APIurlpatterns = [路径('',家,名称='home'),路径('preceptir/',preditive_view,name ='precadive'),路径('api/precadive/',prectiv_api,name ='prective_api'),这是给出的````````### 8。运行应用程序 - **迁移**:应用数据库迁移:`python manage.py migrate` - **运行服务器**:启动Django开发服务器:`python manage.py runserver`### 9。测试应用程序 - **单位测试**:在`tests.py'中写测试。``python来自django.test Import Testcase从django.urls导入反向班级预测图(testCase):def test_home_renders(self):resp = self.client.get(反向(“ home”))self.Assertequal(resp.status_code,200)self.sersertContains(resp,“虹膜预测指标”)def test_api_predict(self):url = reverse(“ prectiv_api”)有效载荷= {“ sepal_length”:5.0,“ sepal_width”:3.6,“ petal_length”:1.4,“ petal_width”:0.2,}resp = self.client.post(url,json.dumps(有效载荷),content_type ='application/json')self.Assertequal(resp.status_code,200)data = resp.json()self.assertin(“ class_name”,数据)```````` - **运行测试**:使用Django的测试命令执行测试:`python manage.py Test Iris_predictor`### 概括本指南展示了将机器学习模型集成到Django Web应用程序中。涵盖的步骤包括设置Django,培训和保存模型,创建表单和视图,处理API请求,编写模板,测试应用程序并在本地服务器上运行它。此处概述的项目结构可以用作涉及高级机器学习模型和生产级API的更复杂应用程序的模板。