在spyder中,我训练了一个朴素的贝叶斯分类器,用于根据降雪量和其他特征来预测是否取消学校。因此,我的问题分为两个部分。首先,我如何建立一个网站,以便用户可以输入雪和温度,并且当用户单击按钮时,分类器(在python中)可以吐出一个响应?我是否必须为此使用Django(以便所有内容都在python中,并且可能使事情变得更容易)?其次,如何保存分类器,以便不必每次都对模型进行训练?
答案 0 :(得分:0)
我可以在https://discord.gg/Jgutu2w不协调的情况下为您完成此任务。
堆栈溢出并不是一个好问题,无法在一个线程中问尽可能多的问题。请重新考虑将您的问题分解为更简单的问题,每个问题都有一个线程。
您的问题很具体,因此我怀疑您会得到答复。 Django可以胜任这项任务,,但我个人不知道其他解决方案。
https://docs.djangoproject.com/en/2.1/
https://www.youtube.com/watch?v=n-FTlQ7Djqc&list=PL4cUxeGkcC9ib4HsrXEYpQnTOTZE1x0uc
首先,如何建立一个网站,以便用户可以输入雪和温度
pip install django
django-admin startproject weatherpredictor
cd天气预报器
python manage.py makemigrations
python manage.py migration
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(访问的数据)以获得预测。
那些简单的东西之一,只需要在多个平台上的知识即可。