반응형
RandomForest
의사 결정 트리
어떤 값을 결정하는 여러 요소가 있을 때 각 요소 별로 트리를 만듬
암 발병 확률에 대한 요소가 키, 몸무게 , 혈액형 , 흡연 여부 등등이 있다면
키 , 몸무게 암 확률에 대한 트리 1개 , 다른 요소와의 결합으로 트리 1개 ....
이런식으로 트리들이 모여서 forest를 이루고, 각 트리에서 질문을 던짐.
흡연을 할 때 , 몸무게가 x이상이라면 암에 걸릴 확률은? ...
그리고 그 질문들을 종합하여 결론을 내림. -> ensemble (앙상블)이라고 함
어떤 요소가 결과 값에 가장 영향을 많이 주는지를 포함한 경향성을 파악
RandomForestRegressor 모델 성능을 예측하는 방법은 train set에서 학습시킨 모델에게 새로운 데이터와 값을 score함수의 인자로 전달.
그러면 새 데이터를 바탕으로 값을 도출하는데 그 값이 새 값과의 일치율을 바탕으로 성능이 나오는 것임.
from functools import wraps
import json
from flask import Flask
from flask_jsonpify import jsonpify
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from flask_restful import reqparse
import pandas as pd
import numpy as np
app = Flask(__name__)
@app.route('/', methods=['GET'])
def test():
train = pd.read_csv("./train.csv")
train["datetime"] = train["datetime"].astype("datetime64")
train["hour"] = train["datetime"].dt.hour
train["year"] = train["datetime"].dt.year
y = train["count"]
train = train.drop(["casual","registered","count","datetime","holiday","season"], 1)
x_train,x_valid,y_train,y_valid = train_test_split(train,y,test_size = 0.33,random_state = 42)
"""
parser = reqparse.RequestParser()
parser.add_argument('year', type=str)
parser.add_argument('hour', type=str)
parser.add_argument('windspeed', type=str)
parser.add_argument('humidity', type=str)
parser.add_argument('atemp', type=str)
parser.add_argument('temp', type=str)
parser.add_argument('weather', type=str)
parser.add_argument('workingday', type=str)
parser.add_argument('holiday', type=str)
parser.add_argument('season', type=str)
args = parser.parse_args()
test = pd.DataFrame({'year': [args['year']], 'hour': [args['hour']], 'windspeed' :[args['windspeed']], 'humidity' : [args['humidity']],
'atemp' : [args['atemp']],'temp' : [args['temp']],'weather' : [args['weather']],'workingday' : [args['workingday']]
})
"""
sub = pd.read_csv("./sampleSubmission.csv")
rf = RandomForestRegressor()
rf.fit(x_train,y_train)
p = rf.predict(x_valid)
print("Accuracy is: ", rf.score (x_valid,y_valid))
return jsonpify(test.head(1).to_json())
반응형
'HealRo Project' 카테고리의 다른 글
Spring boot JS 경로 configure (0) | 2020.01.24 |
---|---|
자전거 이용률 예측 인공지능 개발 (0) | 2020.01.24 |
flask Rest API GET 매개변수 (0) | 2020.01.23 |
간단한 머신러닝 연동 테스트 (0) | 2020.01.22 |
csv file eclipse 가져오기 (0) | 2020.01.22 |