knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

機械学習 + Django WEBアプリの実装


index:

概要

機械学習の機能を、
web フレームワークDjangoで、web実装する内容となります。
機械学習は、前の不動産の家賃の予測機能です。

環境

python 3.5
Django 2.1.5

設定等

・アプリは、test1

ルーティング追加
・test1/urls.py

#
from django.urls import path
from test1 import views

app_name = 'test1'
urlpatterns = [
    path('', views.index, name='index'),
    #pred
    path('predict_input/', views.predict_input, name='predict_input'),
    path('predict/', views.predict, name='predict'),
    path('form_test/', views.form_test, name='form_test'),
]

    


・test1/views.py

from django.shortcuts import render, get_object_or_404, redirect
from django.views.generic.list import ListView

# Create your views here.
from django.http import HttpResponse
from django.template import loader
import numpy as np

#
def index(request):
    return HttpResponse('Hello World ,from test1')
#
def predict_input(request):
    from test1.include.pred_price import  PredPrice
    return render(request, 'test1/predict_input.html')
#
def predict(request):
    if request.method == 'POST':
        from test1.include.pred_price import  PredPrice
        siki_price=request.POST['siki_price']
        rei_price =request.POST['rei_price']
        menseki   =request.POST['menseki']
        nensu     =request.POST['nensu']
        toho      =request.POST['toho']
        #param
        params = {"siki_price" : siki_price
        , "rei_price" : rei_price
        , "menseki" : menseki
        , "nensu"   : nensu
        , "toho"    : toho
        }
        print(params )
        #
        pred =PredPrice()
        model =pred.load_model()
        df = pred.load_data( params )
        price = model.predict(df )
        price_int = np.array( price , np.int32)        
        print( price_int[0] )
#        return HttpResponse('predict-POST')
        return render(request,   'test1/predict_out.html',     # 使用するテンプレート
                  {'price': price_int[0] })         # テンプレートに渡すデータ
    else:
        return HttpResponse('predict')

画面

・予測、条件の入力。
=>不動産の、条件

f:id:knaka0209:20190131124415p:plain

・予測、結果の表示
=> 金額の予測が、出力出来ました。

f:id:knaka0209:20190131124452p:plain




Github

github.com

サンプルの、プロジェクト
=>以前の、django サンプルを参考にしています。


参考、 以前のflask版の WEB実装

knaka0209.hatenablog.com