如何将经过python训练的机器学习模型实现到网页上?

时间:2018-11-17 16:19:43

标签: django web machine-learning

在spyder中,我训练了一个朴素的贝叶斯分类器,用于根据降雪量和其他特征来预测是否取消学校。因此,我的问题分为两个部分。首先,我如何建立一个网站,以便用户可以输入雪和温度,并且当用户单击按钮时,分类器(在python中)可以吐出一个响应?我是否必须为此使用Django(以便所有内容都在python中,并且可能使事情变得更容易)?其次,如何保存分类器,以便不必每次都对模型进行训练?

2 个答案:

答案 0 :(得分:0)

我可以在https://discord.gg/Jgutu2w不协调的情况下为您完成此任务。

堆栈溢出并不是一个好问题,无法在一个线程中问尽可能多的问题。请重新考虑将您的问题分解为更简单的问题,每个问题都有一个线程。

您的问题很具体,因此我怀疑您会得到答复。 Django可以胜任这项任务,,但我个人不知道其他解决方案。

https://docs.djangoproject.com/en/2.1/

https://www.youtube.com/watch?v=n-FTlQ7Djqc&list=PL4cUxeGkcC9ib4HsrXEYpQnTOTZE1x0uc

首先,如何建立一个网站,以便用户可以输入雪和温度

  1. pip install django

  2. django-admin startproject weatherpredictor

  3. cd天气预报器

  4. python manage.py makemigrations

  5. python manage.py migration

  6. python manage.py runserver

  

model.py

from django.db import models
    class WeatherStateModel(models.Model):
        WEATHER_OPTION = (
            ('N', 'Bad weather'),
            ('B', 'Good weather'),
            ('M', 'Meh weather'),
        )
        SNOW_OPTION = (
            (2, 'A lot snow'),
            (1, 'Not that much'),
            (0, 'No snow'),
        )
        weather = models.CharField(max_length=1, choices=WEATHER_OPTION)
        temperature= models.IntegerField()
        snow = models.IntegerField(choices=SNOW_OPTION)
  

urls.py

from django.urls import path
from . import views

app_name = 'weatherpredictor'
urlpatterns = [
    path('',
         views.predictweather.as_view(), name='predictweather'),

]
  

views.py

from .models import WeatherStateModel
from django.views.generic import CreateView
class leave_feedback(CreateView):
    model = WeatherStateModel
    fields = ['weather', 'temperature', 'snow']
    success_url = '/'
  

在templates / weatherpredictor / weatherstatemodel_form.html

<form enctype="multipart/form-data" action="" method="post">
  {% csrf_token %} {{ form }} <input type="submit" value="Save" />
</form>

用户单击按钮,分类器(在python中)可以吐出一个响应?

  

无法获得ML代码的帮助

第二,如何保存分类器以便不必每次都训练模型?

取决于分类器使用的格式,导入的模块等。

  

无法获得ML代码的帮助

答案 1 :(得分:0)

要回答我的问题的第一部分:您只需制作一个具有2个字段的django模型,然后制作一个使用户填写这两个字段的表单。提交表单后,将创建模型对象,然后将其发送到数据库。

要回答我问题的第二部分:在python IDE中使用类名joblib(或类似cpickle之类的东西),joblib或cpickle应该具有一个称为save classifier的内置方法。这样,您实际上可以将分类器另存为pkg文件。然后,将其拖到django文件夹中,当您需要使用该分类器时,再次导入joblib / cpickle,并使用内置方法“ load”。现在,您有一个要部署的分类器。如果您使用scikit learning训练了分类器,则所有分类器都具有内置的“ predict”方法,因此请访问存储在用户数据库中的数据,然后执行classifier.predict(访问的数据)以获得预测。

那些简单的东西之一,只需要在多个平台上的知识即可。