Во-первых, мы захотим сбросить нашу модель с помощью 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
Работает!
Ознакомьтесь с кодом здесь