본문 바로가기

HealRo Project

간단한 머신러닝 연동 테스트

반응형

 

Python (in flask)

from flask import Flask
from flask_jsonpify import jsonpify
import json
from functools import wraps
from flask import redirect, request, current_app
from sklearn.ensemble import RandomForestRegressor
import pandas as pd


app = Flask(__name__)


@app.route('/', methods=['GET'])
def test():
    train = pd.read_csv("./train.csv")
    train["datetime"] = train["datetime"].astype("datetime64")
    train.dtypes
    train["hour"] = train["datetime"].dt.hour
    train["year"] = train["datetime"].dt.year
    
    y = train["count"] 
    train = train.drop(["casual","registered","count","datetime"], 1)
    test = pd.read_csv("./test.csv")
    test["datetime"] = test["datetime"].astype("datetime64")
    test["hour"] = test["datetime"].dt.hour
    test["year"] = test["datetime"].dt.year
    test = test.drop("datetime",1)
    sub = pd.read_csv("./sampleSubmission.csv")
   
    
    rf = RandomForestRegressor()
    rf.fit(train,y)
    p = rf.predict(test)
    sub["count"] = p
     
    
    return jsonpify(sub.head(1).to_json())
    

머신러닝 돌려서 결과 중 head 1번째 것만 return 시켰다.

 

결과

 

Spring (JS)

$(function(){ 
	$("#btn").click(function(){ 
		$.ajax({
	        type: "GET",
	        dataType: "jsonp",
	        url: "http://localhost:5000/",
	        success: function (data) {
	        	var form = JSON.parse(data);
	        	var count = form.count;
	        	
	        	var print = JSON.stringify(count["0"]);
	        	
	            console.log('data는'+print);
	        }
	    });
		}); 
	});
		

 

ajax를 통해 받았는데 , data 그대로 출력은 잘 되는데, count에 접근을 할 수 가 없었다.

그 이유는 data가 전달받은 값을 string 취급 해 버렸기 때문..

따라서 data를 JSON으로 변형 시킨다. JSON.parse 하면 JSON 포맷인 String은 JSON으로 변형됨.

json parse 시켜서 count에 접근 한뒤 값을 빼옴.

 

근데 key값이 현재 숫자이므로 . 으로 접근 불가

따라서 count["0"] 과 같은 방식으로 접근해서 값을 빼옴.

도출된 값은 다시 JSON.stringify 로 String 변형 시켜서 출력. 

 

ajax에서 REST Controller로 전송 할 때는 data를 특히 객체와 같은 경우 JSON 포맷이므로 

String 변형 시켜서 전송해야 매개변수로 받아 들인다.

 

 

반응형

'HealRo Project' 카테고리의 다른 글

RandomForest Regressor 성능 분석  (0) 2020.01.24
flask Rest API GET 매개변수  (0) 2020.01.23
csv file eclipse 가져오기  (0) 2020.01.22
Cross Domain 해결  (0) 2020.01.21
flask run  (0) 2020.01.21