Во-первых, мы захотим сбросить нашу модель с помощью joblib, чтобы скомпилировать нашу модель в красивый маленький файл .pkl. Я обучил классификатору данных о киберзапугивании, и это то, что я буду использовать в этом проекте.

clf = DecisionTreeClassifier()
        ......
import joblib
joblib.dump(clf,'cybermodel.pkl')

Теперь, когда у нас есть файл .pkl, мы можем продолжить и настроить виртуальную среду для нашего проекта django.

#creates a virtual environment named mlproj
virtualenv --python=python3 mlproj
#activates the virtual environment
\path\to\mlproj\Scripts\activate   

Настройте проект Django

Введите следующие команды в свой интерфейс командной строки, чтобы настроить проект django.

#install django and other packages
> pip install django scikit-learn
> django-admin startproject cyberproj
> cd cyberproj
> python manage.py startapp core    #create an app

Теперь добавьте свое приложение в INSTALLED_APPS в файле settings.py и настройте каталог шаблона.

# Application definition
INSTALLED_APPS = [
.....,
'core'                            #your app
]
...
#set up your template directory

Включите ваш .pkl файл в свой проект

Здесь я создал папку модели и сохранил в ней свой файл .pkl.

URL

Кроме того, создайте urls.py файл для своего приложения, затем откройте файл cyberproj.urls и укажите URL-адреса приложения.

from django.urls import path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('core.urls')),     #include your app urls
]

Взгляды

Теперь давайте создадим представления для прогнозирования и отображения результатов.

Примечание. Я буду загружать в свой поезд данные, которые будут использоваться в качестве словаря для CountVectorizer. Требования к вашему проекту могут быть разными.

Давайте добавим представления в файл urls.py для основного приложения.

from django.urls import path
from .views import index,predict
app_name = 'core'
urlpatterns = [
    path('',index,name='index'),
    path('predict/',predict,name='predict'),
]

Итак, в основном есть два представления: представление индекса (для домашней страницы) и представление для отображения результатов прогноза. В шаблон представления индекса (index.html) я включил форму, которая отправляет сообщение в представление прогноза.

Форма принимает текстовый ввод и отправляет его в прогнозируемое представление. Затем вводимый текст преобразуется в разреженную матрицу, и модель предсказывает, можно ли вводить данные как киберзапугивание или нет (1 или 0). Прогноз и ввод текста затем передаются в контекст представления прогноза.

Запустите python manage.py migrateи python manage.py makemigrations, чтобы выполнить необходимые миграции.

Запустите python manage.py runserver

Работает!

Ознакомьтесь с кодом здесь