45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from sklearn import svm
|
|
from sklearn.externals import joblib
|
|
import requests
|
|
import glob
|
|
import json
|
|
import numpy as np
|
|
|
|
|
|
from server.nightr.strategies.strat_utils import write_json
|
|
|
|
|
|
def find_data(time):
|
|
write_json("https://portal.opendata.dk/api/3/action/datastore_search?resource_id=2a82a145-0195-4081-a13c-b0e587e9b89c", "parking_aarhus", time)
|
|
|
|
def load_data():
|
|
|
|
X = []
|
|
Y = []
|
|
|
|
for filename in glob.glob("parking_aarhus*"):
|
|
p_class = '2330' in filename
|
|
|
|
with open(filename) as file:
|
|
data = json.load(file)
|
|
|
|
records = data['result']['records']
|
|
frequencies = [house['vehicleCount'] / house['totalSpaces'] for house in records]
|
|
X.append(frequencies)
|
|
Y.append(int(p_class))
|
|
|
|
return np.array(X), np.array(Y)
|
|
|
|
def train():
|
|
X, Y = load_data()
|
|
classifier = svm.SVC(C=10, gamma=0.01, probability=True)
|
|
classifier.fit(X, Y)
|
|
joblib.dump(classifier, "nightness_classifier.pkl")
|
|
|
|
def predict(X):
|
|
classifier = joblib.load("nightness_classifier.pkl")
|
|
prob = classifier.predict_proba(X)
|
|
return prob[0, 1]
|
|
|
|
train()
|