def random_forest_cross_loc_time_step( timeStep, round1, location1, round2, location2, round3, location3, board ):
    TIME_STEP = timeStep
    rf = RandomForestRegressor()
    data1 = loadMatrix( TIME_STEP, round1, location1, board)
    data2 = loadMatrix( TIME_STEP, round2, location2, board) 
    cross = loadMatrix( TIME_STEP, round3, location3, board)
    train = data1[0]
    train = np.concatenate((train, data1[1]), axis=0 )
    train = np.concatenate((train, data2[0]), axis=0 )
    train = np.concatenate((train, data2[1]), axis=0 ) 
    test = cross[1]
    trainX = train[TIME_STEP::, NO2_INDEX]
    trainX = np.expand_dims(trainX, axis=1)
    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, O3_INDEX], axis=1)), axis=1)
  #  trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, CO_INDEX], axis=1)), axis=1)
 #   trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, TEMP_INDEX], axis=1)), axis=1)
#    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, HUM_INDEX], axis=1)), axis=1)
    for index in range(TIME_STEP):
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, NO2_INDEX + (index + 1)*8], axis=1)), axis=1)
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, O3_INDEX + (index + 1)*8], axis=1)), axis=1)
    #    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, CO_INDEX + (index + 1)*8], axis=1)), axis=1)
  #      trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, TEMP_INDEX + (index + 1)*8], axis=1)), axis=1)
 #       trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, HUM_INDEX + (index + 1)*8], axis=1)), axis=1)
    trainY = train[TIME_STEP::,EPA_NO2_INDEX]
    trainY = np.expand_dims(trainY, axis=1)
    trainY = np.concatenate( (trainY, np.expand_dims(train[TIME_STEP::, EPA_O3_INDEX], axis=1)), axis=1) 
    rf.fit(trainX, trainY)
    
    testX = test[TIME_STEP::, NO2_INDEX]
    testX = np.expand_dims(testX, axis=1)
    testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, O3_INDEX], axis=1)), axis=1)
  #  testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, CO_INDEX], axis=1)), axis=1)
  #  testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, TEMP_INDEX], axis=1)), axis=1)
  #  testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, HUM_INDEX], axis=1)), axis=1)
    for index in range(TIME_STEP):
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, NO2_INDEX + (index + 1)*8], axis=1)), axis=1)
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, O3_INDEX + (index + 1)*8], axis=1)), axis=1)
   #     testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, CO_INDEX + (index + 1)*8], axis=1)), axis=1)
   #     testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, TEMP_INDEX + (index + 1)*8], axis=1)), axis=1)
   #     testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, HUM_INDEX + (index + 1)*8], axis=1)), axis=1)
    testY = test[TIME_STEP::, EPA_NO2_INDEX]
    testY = np.expand_dims(testY, axis=1)
    testY = np.concatenate( (testY, np.expand_dims(test[TIME_STEP::, EPA_O3_INDEX], axis=1)), axis=1) 
    y_predict = rf.predict(testX)
    return y_predict, testY
Exemplo n.º 2
0
def random_forest_time_step( timeStep, round, location, board ):
    TIME_STEP = timeStep
    rf = RandomForestRegressor()
    data = loadMatrix( TIME_STEP, round, location, board)
    train = data[0]
    test = data[1]
    trainX = train[TIME_STEP::, 1]
    trainX = np.expand_dims(trainX, axis=1)
    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 2], axis=1)), axis=1)
    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 3], axis=1)), axis=1)
    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 6], axis=1)), axis=1)
    trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 7], axis=1)), axis=1)
    for index in range(TIME_STEP):
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 1 + (index + 1)*8], axis=1)), axis=1)
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 2 + (index + 1)*8], axis=1)), axis=1)
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 3 + (index + 1)*8], axis=1)), axis=1)
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 6 + (index + 1)*8], axis=1)), axis=1)
        trainX = np.concatenate( (trainX, np.expand_dims(train[TIME_STEP::, 7 + (index + 1)*8], axis=1)), axis=1)
    trainY = train[TIME_STEP::,4]
    trainY = np.expand_dims(trainY, axis=1)
    trainY = np.concatenate( (trainY, np.expand_dims(train[TIME_STEP::, 5], axis=1)), axis=1) 
    rf.fit(trainX, trainY)
    
    testX = test[TIME_STEP::, 1]
    testX = np.expand_dims(testX, axis=1)
    testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 2], axis=1)), axis=1)
    testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 3], axis=1)), axis=1)
    testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 6], axis=1)), axis=1)
    testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 7], axis=1)), axis=1)
    for index in range(TIME_STEP):
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 1 + (index + 1)*8], axis=1)), axis=1)
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 2 + (index + 1)*8], axis=1)), axis=1)
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 3 + (index + 1)*8], axis=1)), axis=1)
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 6 + (index + 1)*8], axis=1)), axis=1)
        testX = np.concatenate( (testX, np.expand_dims(test[TIME_STEP::, 7 + (index + 1)*8], axis=1)), axis=1)
    testY = test[TIME_STEP::,4]
    testY = np.expand_dims(testY, axis=1)
    testY = np.concatenate( (testY, np.expand_dims(test[TIME_STEP::, 5], axis=1)), axis=1) 
    y_predict = rf.predict(testX)
    #print(rf.get_params())
    #print(rf.decision_path(testX))
    return y_predict, testY
Exemplo n.º 3
0
def random_forest_time_step(timeStep, round, location, board):
    TIME_STEP = timeStep
    nueral = NeuralNetwork(
        ['no2', 'o3', 'co', 'temperature', 'absolute-humidity', 'pressure'])
    data = loadMatrix(TIME_STEP, round, location, board)
    train = data[0]
    test = data[1]
    trainX = train[TIME_STEP::, 1]
    trainX = np.expand_dims(trainX, axis=1)
    trainX = np.concatenate(
        (trainX, np.expand_dims(train[TIME_STEP::, 2], axis=1)), axis=1)
    trainX = np.concatenate(
        (trainX, np.expand_dims(train[TIME_STEP::, 3], axis=1)), axis=1)
    trainX = np.concatenate(
        (trainX, np.expand_dims(train[TIME_STEP::, 6], axis=1)), axis=1)
    trainX = np.concatenate(
        (trainX, np.expand_dims(train[TIME_STEP::, 7], axis=1)), axis=1)
    for index in range(TIME_STEP):
        trainX = np.concatenate(
            (trainX,
             np.expand_dims(train[TIME_STEP::, 1 + (index + 1) * 8], axis=1)),
            axis=1)
        trainX = np.concatenate(
            (trainX,
             np.expand_dims(train[TIME_STEP::, 2 + (index + 1) * 8], axis=1)),
            axis=1)
        trainX = np.concatenate(
            (trainX,
             np.expand_dims(train[TIME_STEP::, 3 + (index + 1) * 8], axis=1)),
            axis=1)
        trainX = np.concatenate(
            (trainX,
             np.expand_dims(train[TIME_STEP::, 6 + (index + 1) * 8], axis=1)),
            axis=1)
        trainX = np.concatenate(
            (trainX,
             np.expand_dims(train[TIME_STEP::, 7 + (index + 1) * 8], axis=1)),
            axis=1)
    trainY = train[TIME_STEP::, 4]
    trainY = np.expand_dims(trainY, axis=1)
    trainY = np.concatenate(
        (trainY, np.expand_dims(train[TIME_STEP::, 5], axis=1)), axis=1)
    nueral.fit(trainX, trainY)

    testX = test[TIME_STEP::, 1]
    testX = np.expand_dims(testX, axis=1)
    testX = np.concatenate(
        (testX, np.expand_dims(test[TIME_STEP::, 2], axis=1)), axis=1)
    testX = np.concatenate(
        (testX, np.expand_dims(test[TIME_STEP::, 3], axis=1)), axis=1)
    testX = np.concatenate(
        (testX, np.expand_dims(test[TIME_STEP::, 6], axis=1)), axis=1)
    testX = np.concatenate(
        (testX, np.expand_dims(test[TIME_STEP::, 7], axis=1)), axis=1)
    for index in range(TIME_STEP):
        testX = np.concatenate(
            (testX,
             np.expand_dims(test[TIME_STEP::, 1 + (index + 1) * 8], axis=1)),
            axis=1)
        testX = np.concatenate(
            (testX,
             np.expand_dims(test[TIME_STEP::, 2 + (index + 1) * 8], axis=1)),
            axis=1)
        testX = np.concatenate(
            (testX,
             np.expand_dims(test[TIME_STEP::, 3 + (index + 1) * 8], axis=1)),
            axis=1)
        testX = np.concatenate(
            (testX,
             np.expand_dims(test[TIME_STEP::, 6 + (index + 1) * 8], axis=1)),
            axis=1)
        testX = np.concatenate(
            (testX,
             np.expand_dims(test[TIME_STEP::, 7 + (index + 1) * 8], axis=1)),
            axis=1)
    testY = test[TIME_STEP::, 4]
    testY = np.expand_dims(testY, axis=1)
    testY = np.concatenate(
        (testY, np.expand_dims(test[TIME_STEP::, 5], axis=1)), axis=1)
    y_predict = nueral.predict(testX)
    return y_predict, testY
Exemplo n.º 4
0
import metasense
import data
from data import loadMatrix
import numpy as np
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt

data = loadMatrix(1, 'donovan', 19)
train = data[0]
train = train.sort_values(by=['datetime'])
mat = train['datetime'].values
mat = np.expand_dims(mat, axis=1)
mat = np.concatenate((mat, np.expand_dims(train['no2'].values, axis=1)),
                     axis=1)
mat = np.concatenate((mat, np.expand_dims(train['o3'].values, axis=1)), axis=1)
mat = np.concatenate((mat, np.expand_dims(train['co'].values, axis=1)), axis=1)
mat = np.concatenate((mat, np.expand_dims(train['epa-no2'].values, axis=1)),
                     axis=1)
mat = np.concatenate((mat, np.expand_dims(train['epa-o3'].values, axis=1)),
                     axis=1)
mat = np.concatenate(
    (mat, np.expand_dims(train['temperature'].values, axis=1)), axis=1)
mat = np.concatenate(
    (mat, np.expand_dims(train['absolute-humidity'].values, axis=1)), axis=1)
tempDates = np.chararray((len(train['datetime']), 1), itemsize=30)
for index in range(len(tempDates)):
    if (index - 1) >= 0:
        tempDates[index] = train['datetime'].values[index - 1]
    else:
        tempDates[index] = "no data"
    def __init__(self, fileName):

        self.data = data.loadMatrix(fileName)