In [10]:
'''
Notebook to Calculate Baseline using a simple average predictor.
'''
import numpy as np
import pandas as pd
import pickle

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_style("darkgrid")

In [2]:
'''
Utility functions.
'''
# Mapping for data matrix columns.
columns = { 'x' : 0,
            'y' : 1,
            'region' : 2,
            't' : 3, 
            'count' : 4 } 

# Author: Alex Wang -- Sets NaN to average.
def normalize_features(X_train):
    mean_X_train = np.nanmean(X_train, 0)
    for i in xrange(np.shape(X_train)[1]):
        col = X_train[:,i]
        col[ np.isnan(col) ] = mean_X_train[i]
    std_X_train = np.std(X_train, 0)
    std_X_train[ std_X_train == 0 ] = 1
    X_train_normalized = (X_train - mean_X_train) / std_X_train
    return X_train_normalized

def rmse(predict, true):
    # Returns the root mean squared error.
    return np.sqrt(1.0/np.shape(predict)[0] * np.sum(np.square(predict - true)))

def randomSplit(X, split_size):
    # Randomly splits the data.
    np.random.shuffle(X)
    break_pt = int(split_size * np.shape(X)[0])
    return X[:break_pt,:], X[break_pt:,:]

def splitLastN(X, t):
    # Splits the X data matrix into historical data and data for the 
    # last t time steps.
    times = np.unique(X[:, columns['t']])
    lowBound = np.sort(times)[len(times) - t]
    selected = X[:, columns['t']] <= lowBound
    return X[selected,:], X[~selected,:]

def buckets(series, n):
    # Takes a series and returns an array mapping each element to
    # one of n buckets.
    mi, ma = series.min(), series.max()
    buckets = np.linspace(mi, ma, n + 1)
    
    res = np.zeros(len(series))
    try:
        array = series.values
    except AttributeError:
        array = series
    if np.isnan(array).any():
        print "Error! NaN values found in series!"
    for i in xrange(n):
        res[(buckets[i] <= array) & (array < buckets[i+1])] = i
    return res.astype(int)

def createSimplePartitions(data, n):
    # Returns a partitioned version of data into nxn regions!
    data['xRegion'] = buckets(data.Latitude, n).astype(int)
    data['yRegion'] = buckets(data.Longitude, n).astype(int)
    data['Region'] = n * data.xRegion + data.yRegion

    return data

    
def extractRegionsFromMatrix(X_data, n):
    # Does the same thing as extractDataMatrix, but as input takes in
    # a matrix with just the latitude, longitude coordinates, time periods.
    xRegion = buckets(X_data[:, 0], n)
    yRegion = buckets(X_data[:, 1], n)
    Region = n * xRegion + yRegion
    
    xRegions = np.unique(xRegion).astype(int)
    yRegions = np.unique(yRegion).astype(int)
    regions = np.unique(Region).astype(int)
    months = np.unique(X_data[:,2])
    num_columns = 5
    num_rows = len(regions) * len(months)
    X_res = np.zeros((num_rows, num_columns))
    el = 0
    for x in xRegions:
        for y in yRegions:
            for month in months:
                reg = n * x + y
                count = len(X_data[ (Region == reg) &
                                    (X_data[:, 2] == month)])
                if count > 0:
                    X_res[el, :] = np.array([x,y,reg, month, count])
                    el += 1
            
    # Convert data to right shape
    X_res = X_res.astype(int)
    if el < X_res.shape[0]:
        print "Removing empty values from our data!"
        print "Rows before: {}".format(X_res.shape[0])
        X_res = X_res[~np.all(X_res == 0, axis=1)]
        print "Rows after: {}".format(X_res.shape[0])
    
    return X_res

def createDataMatrix(data):
    '''
    Transforms a panda dataframe into latitude longitude time period matrix
    record of crimes.
    '''
    X = np.zeros((len(data), 3))
    X[:, 0] = data.Latitude.values.astype(float)
    X[:, 1] = data.Longitude.values.astype(float)
    X[:, 2] = data.TimeFeature.values.astype(int)
    
    return X

def extractDataMatrix(data, n):
    # Creates a NxD data matrix from the given data set.
    # data must contains xRegion, yRegion, Region, and TimeFeature columns.
    # 0 -> xRegion
    # 1 -> yRegion
    # 2 -> Region
    # 3 -> Month
    # 4 -> Count
    # The data is NOT normalized!
    # Returns the data as well as a dictionary mapping column names
    # to indeces.
    partData = createSimplePartitions(data, n)
    regions = partData.Region.unique()
    xRegions = partData.xRegion.unique()
    yRegions = partData.yRegion.unique()
    months = partData.TimeFeature.unique()
    num_columns = 5
    num_rows = len(regions) * len(months)
    X_data = np.zeros((num_rows, num_columns))
    el = 0
    for x in xRegions:
        for y in yRegions:
            for month in months:
                count = len(data[ (data.xRegion == x) &
                                  (data.yRegion == y) &
                                  (data.TimeFeature == month)])
                if count > 0:
                    X_data[el, :] = np.array([x,y,n*x + y, month, count])
                    el += 1
            
    if el < X_data.shape[0]:
        print "Removing empty values from our data!"
        print "Rows before: {}".format(X_data.shape[0])
        X_data = X_data[~np.all(X_data == 0, axis=1)]
        print "Rows after: {}".format(X_data.shape[0])
        
    return X_data.astype(int)

In [3]:
'''
More utility functions. 
'''
# Note: If a data point does not exist, it is assumed to be 0.
def averagePredictions(X_train, nRegions, tMax):
    averages = np.zeros(nRegions)
    for region in xrange(nRegions):
        averages[region] = X_train[
            X_train[:, columns['region']] == region,
            columns['count']].sum() / float(tMax)
    return averages

def createHeatMap(X):
    '''
    Given a data set, creates a heatmap of it based on x,y coordinates.
    Ignore the temporal feature. You should subset the data before passing
    it into this function if you'd like a heatmap for a specific time period.
    '''
    n = X[:, columns['x']].astype(int).max()
    m = X[:, columns['y']].astype(int).max()
    heatmap = np.zeros((n,m))
    for i in xrange(n):
        for j in xrange(m):
            total = X[(X[:, columns['x']] == i) & 
                      (X[:, columns['y']] == j), columns['count']].sum()
            if total > 0:
                heatmap[i,j] = total
    
    # Normalize
    heatmap = heatmap / float(heatmap.sum())
    return heatmap

In [4]:
# Make some plots for n = 15 for GP process
def plotDistribution(predict, true, city, n, process='GP'):
    minValue = min(len(predict), 100)
    yPred = predict[-minValue:]
    yTrue = true[-minValue:]
    yPred = yPred / float(np.sum(yPred))
    yTrue = yTrue / float(np.sum(yTrue))
    plt.clf()
    plt.plot(yPred, label="Predictions")
    plt.plot(yTrue, label="Actual Data")
    plt.title('Predictive Distribution for {}'.format(process))
    plt.xlabel('Compressed Features')
    plt.ylabel('Probability')
    plt.legend()
    plt.savefig('../figures/{}_results/{}_n={}.png'.format(
        city, process, n))
    plt.close()
    
def plotHeatMaps(X_test, predict, city, n, process='GP'):
    # Attach the predictions to the data
    trueValues = np.copy(X_test)
    predictedValues = np.copy(X_test)
    predictedValues[:, columns['count']] = predict

    # Now we want to plot the heatmaps for the predictions/actual data
    # by time period
    months = np.unique(X_test[:, columns['t']])
    for month in months:
        # Create the heatmaps 
        selected = (X_test[:, columns['t']] == month)
        if selected.sum() > 0:
            plt.clf()
            m = createHeatMap(trueValues[selected, :])
            if m.sum() > 0:
                sns.heatmap(m)
                plt.title('True Density Distribution in Month {}'.format(month))
                plt.savefig('../figures/{}_results/{}_heatmap_true_n={}_t={}.png'.format(
                    city, process, n, month))
                plt.close()

            plt.clf()
            m = createHeatMap(predictedValues[selected, :])
            if m.sum() > 0:
                sns.heatmap(m)
                plt.title('Predicted Density Distribution in Month {}'.format(month))
                plt.savefig('../figures/{}_results/{}_heatmap_pred_n={}_t={}.png'.format(
                    city, process, n, month))
                plt.close()

In [12]:
# Given a value of n:
# 0. Normalize the data (if set to True)
# 1. Partition the data
# 2. Split into Train/Test, where test has lastN time feats.
#    Options: 'random', 'last'
#    splitRatio specifies the ratio of results to keep for testing.
#    testPeriods specifies the number of time periods to test
# 3. Train the averages
# 4. Test on the hold-out
# 5. Calculate RMSE
def averageModel(n, X_data, normalize = False, splitMethod = 'random',
                 splitRatio = 0.2, testPeriods = 12, plot=None):
    if normalize:
        X_data = normalize_features(X_data)
        print "Normalized data features!"
        sys.stdout.flush()
        
    # Returns an array indexed by region with the average over the 
    # training set for each region.
    tMax = X_data[:, columns['t']].max()
    nRegions = X_data[:, columns['region']].max() + 1
    
    # Now we can split the data!
    if splitMethod == 'random':
        X_train, X_test = randomSplit(X_data, splitRatio)
    elif splitMethod == 'last':
        X_train, X_test = splitLastN(X_data, testPeriods)
    else:
        raise Exception("splitMethod {} unsupported".format(splitMethod))
    
    print "Training model..."
    sys.stdout.flush()
    # Now use training data to calculate averages
    model = averagePredictions(X_train, nRegions, tMax)
    print "Averages Model:"
    print model
    sys.stdout.flush()
    
    # Generate predictions vector
    predict = model[X_test[:, columns['region']]]
    true = X_test[:, columns['count']]
    
    # Create distributions, and calculate the RMSE of the distribution
    predict_dist = predict / float(np.sum(predict))
    true_dist = true / float(np.sum(true))
    
    # Plot the figure if we're predicting on the end!
    if plot is not None:
        
        plotDistribution(predict, true, 'sf', n, process='Baseline')
        
        plotHeatMaps(X_test, predict, 'sf', n, process='Baseline')
            
    print "Calculating RMSE..."
    sys.stdout.flush()
    
    return rmse(predict_dist, true_dist)

In [8]:
# Let's make a plot for some values of N to see if the data works out...
sfdata_file = '../../cs281_data/large_data/sfclean.pk'
with open(sfdata_file) as fp:
    data = pickle.load(fp)
    # For sfdata, need to remove outliers
    data = data[-120 > data.Longitude][data.Longitude > (-130)]
    data = data[data.Latitude > 37][data.Latitude < 40]

In [13]:
import sys

# Create the data matrix for San Francisco
X_data = createDataMatrix(data)

testN = range(2,10) + range(10,30,5)
rmses = []
for n in testN:
    print "n = {}".format(n)
    # Extracting more efficiently!
    %time X_region = extractRegionsFromMatrix(X_data, n)
    # print X_data.dtype
    print "Partitioned data..."
    sys.stdout.flush()
    rmse_random = averageModel(n, X_region)
    print "Random RMSE: {}".format(rmse_random)
    sys.stdout.flush()
    rmse_last = averageModel(n, X_region, plot='sf', splitMethod='last', testPeriods=6)
    rmses.append((rmse_random, rmse_last))
    print "Last RMSE: {}".format(rmse_last)
    sys.stdout.flush()


n = 2
CPU times: user 7.82 s, sys: 0 ns, total: 7.82 s
Wall time: 7.87 s
Partitioned data...
Training model...
Averages Model:
[  292.96103896   502.72077922   216.80519481  1237.62987013]
Calculating RMSE...
Random RMSE: 0.000278788159724
Training model...
Averages Model:
[ 1210.49350649  3028.75324675  1045.12337662  6220.4025974 ]
Calculating RMSE...
Last RMSE: 0.0078838965728
n = 3
CPU times: user 19.2 s, sys: 16 ms, total: 19.2 s
Wall time: 19.6 s
Partitioned data...
Training model...
Averages Model:
[  83.21428571  176.41558442  242.92857143  108.99350649  646.16883117
  482.30519481   11.45454545  218.61688312  391.94155844]
Calculating RMSE...
Random RMSE: 0.000179956900248
Training model...
Averages Model:
[  378.84415584  1029.7012987   1015.77272727   633.50649351  2776.44805195
  2191.2012987     44.91558442  1468.48701299  1965.8961039 ]
Calculating RMSE...
Last RMSE: 0.00313230267831
n = 4
CPU times: user 34.5 s, sys: 36 ms, total: 34.5 s
Wall time: 35.4 s
Partitioned data...
Training model...
Averages Model:
[  22.07142857  109.31818182  126.16883117  111.49350649   65.16233766
   52.98051948  288.95454545   84.68831169   55.84415584  135.5
  922.43506494  100.70779221    0.           16.24025974  156.34415584
   37.91558442]
Calculating RMSE...
Random RMSE: 8.41378658807e-05
Training model...
Averages Model:
[  101.06493506   533.09090909   665.33116883   549.01298701   297.48701299
   278.85064935  1429.24025974   385.16883117   224.30519481   747.7987013
  4732.25324675   491.82467532     0.            73.01948052   835.14935065
   161.17532468]
Calculating RMSE...
Last RMSE: 0.00314940225578
n = 5
Removing empty values from our data!
Rows before: 3696
Rows after: 3606
CPU times: user 56.9 s, sys: 20 ms, total: 56.9 s
Wall time: 57.6 s
Partitioned data...
Training model...
Averages Model:
[  4.48701299e+00   4.34480519e+01   8.84545455e+01   1.03759740e+02
   5.59805195e+01   2.53506494e+01   2.99025974e+01   4.52012987e+01
   1.22240260e+02   7.07012987e+01   3.90259740e+01   5.45779221e+01
   2.07142857e+02   3.33720779e+02   1.80064935e+01   1.29090909e+01
   5.12402597e+01   1.35662338e+02   8.41084416e+02   3.21688312e+01
   0.00000000e+00   2.46753247e-01   4.02727273e+01   8.24415584e+01
   4.91558442e+00]
Calculating RMSE...
Random RMSE: 0.000101553529303
Training model...
Averages Model:
[  2.16038961e+01   3.14766234e+02   4.41694805e+02   3.83688312e+02
   2.24883117e+02   1.36454545e+02   1.70168831e+02   2.40519481e+02
   6.24201299e+02   3.76344156e+02   1.65487013e+02   2.64993506e+02
   7.99759740e+02   1.84853247e+03   7.16233766e+01   9.65000000e+01
   2.24876623e+02   7.51396104e+02   3.57414286e+03   1.66305195e+02
   0.00000000e+00   1.35064935e+00   1.78694805e+02   4.05097403e+02
   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.00200843081283
n = 6
Removing empty values from our data!
Rows before: 5390
Rows after: 5293
CPU times: user 1min 16s, sys: 76 ms, total: 1min 16s
Wall time: 1min 20s
Partitioned data...
Training model...
Averages Model:
[  2.59740260e+00   2.84220779e+01   7.11753247e+01   5.50324675e+01
   3.80000000e+01   1.01753247e+01   1.59935065e+01   3.18506494e+01
   1.31038961e+01   5.94220779e+01   7.16948052e+01   5.37727273e+01
   2.54545455e+01   2.95974026e+01   2.44935065e+01   1.89954545e+02
   1.02253247e+02   9.38961039e+00   2.67012987e+01   4.11298701e+01
   1.02714286e+02   2.79201299e+02   3.53233766e+02   4.38961039e+00
   9.35064935e-01   8.57792208e+00   3.93506494e+01   2.78701299e+02
   4.45558442e+02   6.18831169e+00   0.00000000e+00   3.05194805e-01
   3.22077922e+00   3.43636364e+01   3.05129870e+01   4.36363636e+00]
Calculating RMSE...
Random RMSE: 5.99702306205e-05
Training model...
Averages Model:
[  1.07597403e+01   1.22025974e+02   3.32006494e+02   2.88383117e+02
   2.45000000e+02   5.70000000e+01   7.53441558e+01   1.70714286e+02
   8.81883117e+01   3.21123377e+02   4.41909091e+02   2.71863636e+02
   1.20292208e+02   1.68850649e+02   1.22311688e+02   8.57681818e+02
   5.09272727e+02   3.65194805e+01   1.14376623e+02   2.29987013e+02
   4.70675325e+02   1.32577922e+03   1.62933117e+03   1.60779221e+01
   4.14935065e+00   3.94350649e+01   1.63396104e+02   1.12757792e+03
   1.78366883e+03   2.80129870e+01   0.00000000e+00   1.33116883e+00
   2.17727273e+01   1.55740260e+02   1.32525974e+02   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.0013926759277
n = 7
Removing empty values from our data!
Rows before: 6776
Rows after: 6418
CPU times: user 1min 20s, sys: 20 ms, total: 1min 20s
Wall time: 1min 21s
Partitioned data...
Training model...
Averages Model:
[  5.58441558e-01   1.13116883e+01   3.94870130e+01   4.61233766e+01
   3.89155844e+01   3.09155844e+01   1.00000000e+00   4.99350649e+00
   2.17662338e+01   2.64415584e+01   3.28701299e+01   4.83376623e+01
   9.47597403e+01   4.46493506e+01   1.76428571e+01   2.18246753e+01
   1.64545455e+01   1.88896104e+01   7.91623377e+01   4.45714286e+01
   2.35714286e+00   1.76233766e+01   1.85064935e+01   3.78896104e+01
   7.04090909e+01   2.59006494e+02   3.81688312e+01   0.00000000e+00
   1.34025974e+01   2.87987013e+01   5.71103896e+01   1.30701299e+02
   6.29701299e+02   2.39123377e+02   0.00000000e+00   0.00000000e+00
   1.55844156e-01   6.94805195e-01   6.71103896e+01   8.49545455e+01
   9.20974026e+01   0.00000000e+00   0.00000000e+00   4.35064935e-01
   0.00000000e+00   4.25974026e+00   4.04220779e+01   4.38311688e+00
   5.87662338e+00]
Calculating RMSE...
Random RMSE: 7.48159439883e-05
Training model...
Averages Model:
[  2.72727273e+00   7.36818182e+01   2.05597403e+02   2.46662338e+02
   1.70045455e+02   1.98370130e+02   5.27922078e+00   3.18116883e+01
   1.08454545e+02   1.02233766e+02   1.64785714e+02   1.99337662e+02
   4.51974026e+02   1.74753247e+02   6.75259740e+01   1.17720779e+02
   7.39870130e+01   1.08422078e+02   4.67123377e+02   2.29363636e+02
   9.18181818e+00   7.63831169e+01   9.08311688e+01   1.99129870e+02
   4.10525974e+02   1.00579221e+03   2.70298701e+02   6.49350649e-02
   7.56493506e+01   1.50214286e+02   2.55467532e+02   5.32467532e+02
   2.51892208e+03   1.09565584e+03   0.00000000e+00   0.00000000e+00
   7.40259740e-01   4.75974026e+00   2.66772727e+02   6.23207792e+02
   4.95292208e+02   0.00000000e+00   0.00000000e+00   1.33116883e+00
   0.00000000e+00   1.78636364e+01   1.64201299e+02   1.84740260e+01
   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.00146716617139
n = 8
Removing empty values from our data!
Rows before: 8316
Rows after: 7847
CPU times: user 1min 40s, sys: 4 ms, total: 1min 40s
Wall time: 1min 40s
Partitioned data...
Training model...
Averages Model:
[  2.20779221e-01   8.18831169e+00   2.58051948e+01   3.83116883e+01
   3.18376623e+01   3.72012987e+01   2.36233766e+01   2.59740260e-02
   2.59090909e+00   6.45454545e+00   1.65389610e+01   2.49090909e+01
   3.85129870e+01   3.07987013e+01   4.91688312e+01   3.22012987e+01
   9.77272727e+00   1.68506494e+01   2.14545455e+01   6.87662338e+00
   4.50974026e+01   3.10909091e+01   3.99155844e+01   2.42207792e+00
   2.07792208e+01   2.42922078e+01   1.79805195e+01   1.85000000e+01
   7.47922078e+01   1.51798701e+02   3.96558442e+01   6.49350649e-03
   1.14740260e+01   1.23701299e+01   2.28116883e+01   5.64675325e+01
   1.24844156e+02   2.54136364e+02   2.73311688e+01   0.00000000e+00
   4.23376623e+00   1.65844156e+01   3.04480519e+01   3.50779221e+01
   1.14688312e+02   5.27844156e+02   8.82532468e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.36493506e+01
   4.71168831e+01   9.28766234e+01   3.23311688e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.59740260e-01   0.00000000e+00
   2.79220779e-01   2.71038961e+01   0.00000000e+00   4.24025974e+00]
Calculating RMSE...
Random RMSE: 4.09340331673e-05
Training model...
Averages Model:
[  1.81818182e+00   4.07727273e+01   1.29142857e+02   1.91201299e+02
   1.24090909e+02   1.74045455e+02   1.25201299e+02   1.03896104e-01
   1.39285714e+01   4.45454545e+01   1.01058442e+02   1.11688312e+02
   1.97025974e+02   1.70168831e+02   2.98435065e+02   1.25272727e+02
   4.68831169e+01   8.09870130e+01   8.08571429e+01   4.33766234e+01
   1.73032468e+02   2.14136364e+02   1.92720779e+02   1.33441558e+01
   7.92597403e+01   9.03571429e+01   8.76363636e+01   6.69805195e+01
   3.32551948e+02   7.09519481e+02   1.79090909e+02   1.29870130e-02
   5.46428571e+01   6.28766234e+01   1.16000000e+02   3.33428571e+02
   5.38727273e+02   1.10877922e+03   1.25577922e+02   0.00000000e+00
   2.23961039e+01   8.43896104e+01   1.31201299e+02   1.67168831e+02
   5.90740260e+02   2.49400649e+03   3.66246753e+02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   7.16883117e+01
   2.79272727e+02   4.57928571e+02   1.39487013e+02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.33116883e+00   0.00000000e+00
   2.04545455e+00   9.59025974e+01   0.00000000e+00   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.00135946797587
n = 9
Removing empty values from our data!
Rows before: 10318
Rows after: 10016
CPU times: user 2min 43s, sys: 16 ms, total: 2min 43s
Wall time: 2min 43s
Partitioned data...
Training model...
Averages Model:
[  3.44155844e-01   3.99350649e+00   1.51558442e+01   2.91233766e+01
   3.27077922e+01   3.05454545e+01   2.20649351e+01   1.41038961e+01
   0.00000000e+00   9.48051948e-01   4.00000000e+00   2.17142857e+01
   1.66363636e+01   3.81168831e+01   2.37077922e+01   2.68701299e+01
   5.05454545e+01   1.20064935e+01   6.38311688e+00   1.37987013e+01
   1.13766234e+01   7.16883117e+00   1.07402597e+01   3.73116883e+01
   2.92142857e+01   4.30129870e+01   6.00649351e+00   1.07467532e+01
   9.50649351e+00   1.14870130e+01   8.35064935e+00   1.99740260e+01
   9.04155844e+01   6.12922078e+01   1.99480519e+01   0.00000000e+00
   8.13636364e+00   9.66233766e+00   1.75454545e+01   2.58311688e+01
   5.09545455e+01   1.91733766e+02   4.44155844e+01   8.27272727e+00
   0.00000000e+00   1.17402597e+01   1.41688312e+01   2.68636364e+01
   2.71688312e+01   5.91233766e+01   1.33915584e+02   2.53558442e+02
   3.09220779e+01   0.00000000e+00   1.29870130e-02   3.72077922e+00
   5.75324675e+00   1.14220779e+01   5.09025974e+01   1.92246753e+02
   3.45025974e+02   4.07597403e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.37662338e-01   9.61038961e-01   3.48376623e+01
   6.39805195e+01   4.40064935e+01   3.57792208e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.52597403e+00   7.43506494e+00   0.00000000e+00
   4.50649351e+00]
Calculating RMSE...
Random RMSE: 4.57860348675e-05
Training model...
Averages Model:
[  1.81818182e+00   2.18181818e+01   7.39350649e+01   1.36207792e+02
   1.38896104e+02   1.11590909e+02   1.14590909e+02   6.62792208e+01
   0.00000000e+00   5.15584416e+00   1.74610390e+01   9.27857143e+01
   1.08253247e+02   1.67688312e+02   9.98506494e+01   1.37409091e+02
   2.31181818e+02   6.66883117e+01   3.66168831e+01   6.52467532e+01
   6.40064935e+01   3.23766234e+01   5.92792208e+01   1.75558442e+02
   1.20448052e+02   2.50038961e+02   2.91363636e+01   4.13766234e+01
   5.12597403e+01   5.55324675e+01   3.33181818e+01   8.04025974e+01
   3.20201299e+02   2.90954545e+02   1.12155844e+02   0.00000000e+00
   4.93506494e+01   4.07597403e+01   9.27142857e+01   1.67519481e+02
   2.32824675e+02   7.63051948e+02   2.33000000e+02   6.54090909e+01
   0.00000000e+00   6.11233766e+01   9.21948052e+01   1.49194805e+02
   1.44506494e+02   3.52662338e+02   6.81961039e+02   1.35279221e+03
   1.36889610e+02   0.00000000e+00   4.54545455e-02   1.63311688e+01
   2.72077922e+01   5.22077922e+01   2.05506494e+02   7.99363636e+02
   1.37275325e+03   1.82915584e+02   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.33116883e+00   5.85714286e+00   1.61337662e+02
   2.28474026e+02   3.45454545e+02   1.56103896e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.57402597e+01   2.74740260e+01   0.00000000e+00
   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.000919525661013
n = 10
Removing empty values from our data!
Rows before: 12320
Rows after: 11806
CPU times: user 3min 54s, sys: 124 ms, total: 3min 54s
Wall time: 3min 55s
Partitioned data...
Training model...
Averages Model:
[  3.83116883e-01   2.44805195e+00   9.26623377e+00   2.58636364e+01
   2.70844156e+01   1.25779221e+01   1.88506494e+01   1.66298701e+01
   5.72727273e+00   0.00000000e+00   3.11688312e-01   1.16233766e+00
   1.70844156e+01   1.30714286e+01   2.25389610e+01   3.96428571e+01
   1.01168831e+01   1.78961039e+01   2.59090909e+01   5.24025974e+00
   4.09090909e+00   8.40909091e+00   7.11038961e+00   6.01948052e+00
   1.07597403e+01   2.10519481e+01   2.30324675e+01   2.03961039e+01
   6.30714286e+01   8.67532468e+00   5.78571429e+00   8.09740260e+00
   1.50064935e+01   7.61038961e+00   6.64285714e+00   1.67987013e+01
   4.18766234e+01   1.31948052e+01   8.54545455e+00   0.00000000e+00
   1.52792208e+01   1.44935065e+01   1.80194805e+01   1.19610390e+01
   1.06623377e+01   3.90844156e+01   1.25149351e+02   4.59610390e+01
   9.55194805e+00   0.00000000e+00   7.55844156e+00   5.68831169e+00
   7.74025974e+00   2.32272727e+01   5.06688312e+01   6.94545455e+01
   1.18168831e+02   1.24207792e+02   5.23376623e+00   0.00000000e+00
   5.84415584e+00   1.36493506e+01   1.81168831e+01   2.13636364e+01
   3.02987013e+01   8.49870130e+01   2.67987013e+02   2.14662338e+02
   2.05324675e+01   0.00000000e+00   0.00000000e+00   5.06493506e-01
   6.49350649e-03   1.56493506e+00   1.22012987e+01   3.27012987e+01
   1.20818182e+02   8.19935065e+01   1.37662338e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   4.22077922e-01   0.00000000e+00
   1.51298701e+01   2.29805195e+01   6.90844156e+01   3.14090909e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.07792208e+00]
Calculating RMSE...
Random RMSE: 4.73393232855e-05
Training model...
Averages Model:
[  1.51948052e+00   1.19675325e+01   4.64155844e+01   1.14532468e+02
   1.07461039e+02   6.27207792e+01   1.25675325e+02   7.91623377e+01
   2.50064935e+01   0.00000000e+00   1.85714286e+00   6.25974026e+00
   7.92012987e+01   7.46168831e+01   1.02435065e+02   1.69077922e+02
   4.78311688e+01   1.31019481e+02   1.74006494e+02   2.58701299e+01
   2.13246753e+01   4.45714286e+01   3.67792208e+01   3.09285714e+01
   3.72012987e+01   8.22922078e+01   1.22883117e+02   1.18779221e+02
   2.90207792e+02   4.00064935e+01   2.94610390e+01   4.10974026e+01
   7.00584416e+01   3.24025974e+01   3.91948052e+01   8.18311688e+01
   2.69909091e+02   1.12629870e+02   4.61298701e+01   0.00000000e+00
   5.62922078e+01   4.85259740e+01   7.14805195e+01   5.18766234e+01
   5.30324675e+01   1.96889610e+02   5.35824675e+02   2.39175325e+02
   5.18246753e+01   0.00000000e+00   3.50129870e+01   2.56558442e+01
   3.76103896e+01   1.04025974e+02   2.52779221e+02   2.97058442e+02
   5.82746753e+02   4.90785714e+02   1.97987013e+01   0.00000000e+00
   2.67662338e+01   6.78181818e+01   8.91688312e+01   1.27357143e+02
   1.53305195e+02   3.71305195e+02   1.63760390e+03   8.61194805e+02
   1.04214286e+02   0.00000000e+00   0.00000000e+00   1.91558442e+00
   7.14285714e-02   8.27922078e+00   5.49675325e+01   1.71818182e+02
   4.95162338e+02   5.80181818e+02   6.20909091e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.33116883e+00   1.94805195e-02
   5.90389610e+01   1.19655844e+02   2.68038961e+02   1.37058442e+02
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.16883117e+01]
Calculating RMSE...
Last RMSE: 0.000982986839434
n = 15
Removing empty values from our data!
Rows before: 26796
Rows after: 24913
CPU times: user 8min 36s, sys: 204 ms, total: 8min 37s
Wall time: 10h 30min 24s
Partitioned data...
Training model...
Averages Model:
[  6.49350649e-03   5.19480519e-02   1.77272727e+00   3.96103896e-01
   4.62337662e+00   8.92207792e+00   6.08441558e+00   7.82467532e+00
   2.98051948e+00   1.59610390e+01   1.54870130e+01   4.75324675e+00
   2.03246753e+00   1.29870130e-02   0.00000000e+00   0.00000000e+00
   4.54545455e-01   8.05194805e-01   8.45454545e+00   6.38961039e+00
   9.78571429e+00   1.18896104e+01   2.24805195e+01   9.04545455e+00
   9.41558442e-01   4.59090909e+00   1.26688312e+01   1.38051948e+01
   1.49350649e-01   0.00000000e+00   7.14285714e-02   2.98701299e-01
   5.25974026e-01   8.04545455e+00   3.58441558e+00   7.05194805e+00
   1.10324675e+01   1.44090909e+01   1.63766234e+01   3.70779221e+00
   8.52597403e+00   1.09220779e+01   1.33181818e+01   8.74025974e+00
   2.76623377e+00   1.09740260e+00   1.98051948e+00   2.54545455e+00
   3.38961039e+00   2.56493506e+00   1.76623377e+00   4.41558442e+00
   4.93506494e+00   1.01753247e+01   1.17077922e+01   1.11233766e+01
   1.26428571e+01   4.07727273e+01   1.50389610e+01   4.74025974e-01
   2.61688312e+00   3.68181818e+00   5.11688312e+00   8.32467532e+00
   5.92207792e+00   1.50649351e+00   2.64935065e+00   3.92207792e+00
   6.35064935e+00   1.94285714e+01   8.38961039e+00   6.72077922e+00
   9.54545455e+00   1.60389610e+00   0.00000000e+00   3.03246753e+00
   2.44155844e+00   2.96103896e+00   5.09090909e+00   4.31168831e+00
   5.03246753e+00   4.87012987e+00   5.09090909e+00   8.68831169e+00
   3.33441558e+01   2.15129870e+01   7.27272727e+00   4.29220779e+00
   3.31168831e-01   0.00000000e+00   3.82467532e+00   2.89610390e+00
   4.94805195e+00   4.16883117e+00   5.85714286e+00   2.33766234e+00
   2.38961039e+00   6.26623377e+00   9.33766234e+00   2.76298701e+01
   3.85389610e+01   1.58766234e+01   7.25324675e+00   6.49350649e-03
   0.00000000e+00   3.60389610e+00   4.48051948e+00   2.70779221e+00
   7.07142857e+00   1.11233766e+01   6.46753247e+00   1.07207792e+01
   2.12402597e+01   2.15194805e+01   8.77012987e+01   1.94350649e+01
   1.15714286e+01   5.29220779e+00   0.00000000e+00   0.00000000e+00
   5.18181818e+00   4.90259740e+00   4.11038961e+00   3.44805195e+00
   8.72077922e+00   5.35714286e+00   3.15064935e+01   2.82337662e+01
   3.24090909e+01   3.61883117e+01   3.33636364e+01   7.59870130e+01
   1.64935065e+00   0.00000000e+00   0.00000000e+00   3.22727273e+00
   3.95454545e+00   8.08441558e+00   7.17532468e+00   1.12207792e+01
   1.20194805e+01   1.73961039e+01   2.28441558e+01   4.51558442e+01
   7.32337662e+01   1.49512987e+02   3.94155844e+01   1.66428571e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.36363636e-01
   2.48051948e+00   3.28571429e+00   3.38961039e+00   6.97402597e+00
   6.70779221e+00   1.58636364e+01   2.76363636e+01   1.28753247e+02
   2.11532468e+02   4.38376623e+01   1.51428571e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.12987013e+00
   1.06688312e+01   1.75844156e+01   2.81818182e+01   3.91363636e+01
   3.87402597e+01   5.56493506e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   6.49350649e-03   4.61038961e+00   2.35194805e+01
   1.30324675e+01   1.71363636e+01   3.07467532e+01   9.98701299e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.72727273e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   9.22077922e-01   9.09090909e-02
   1.10909091e+01   1.48441558e+01   1.36363636e-01   0.00000000e+00
   0.00000000e+00   3.75974026e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   4.09090909e-01]
Calculating RMSE...
Random RMSE: 1.74416489079e-05
Training model...
Averages Model:
[  1.29870130e-02   2.98701299e-01   9.02597403e+00   1.53896104e+00
   3.09025974e+01   5.81623377e+01   3.78636364e+01   3.58571429e+01
   1.71883117e+01   8.85584416e+01   5.71428571e+01   2.48766234e+01
   9.20129870e+00   7.79220779e-02   0.00000000e+00   0.00000000e+00
   2.41558442e+00   3.79870130e+00   3.92012987e+01   3.05000000e+01
   5.29675325e+01   4.66623377e+01   9.45779221e+01   4.10909091e+01
   3.51948052e+00   2.45844156e+01   5.73376623e+01   7.25129870e+01
   1.00000000e+00   0.00000000e+00   3.11688312e-01   2.15584416e+00
   3.58441558e+00   5.04805195e+01   1.63246753e+01   3.46883117e+01
   4.56818182e+01   5.45909091e+01   6.81818182e+01   3.00259740e+01
   3.74675325e+01   6.01753247e+01   7.76883117e+01   5.17987013e+01
   1.26038961e+01   5.06493506e+00   1.23831169e+01   1.91948052e+01
   1.47142857e+01   1.28766234e+01   1.02597403e+01   2.14805195e+01
   2.59870130e+01   5.01623377e+01   5.21038961e+01   5.10454545e+01
   5.58571429e+01   2.03402597e+02   8.27337662e+01   1.60389610e+00
   1.02142857e+01   2.14025974e+01   2.82467532e+01   3.75324675e+01
   2.66623377e+01   8.96103896e+00   1.09025974e+01   1.75454545e+01
   3.02077922e+01   9.24740260e+01   4.03701299e+01   3.23896104e+01
   5.50454545e+01   6.85714286e+00   0.00000000e+00   1.05000000e+01
   1.51818182e+01   1.42662338e+01   2.45259740e+01   1.67857143e+01
   1.78506494e+01   1.89090909e+01   2.29415584e+01   4.23831169e+01
   1.47753247e+02   1.01454545e+02   5.07532468e+01   2.49480519e+01
   1.75324675e+00   0.00000000e+00   2.17077922e+01   1.74675325e+01
   2.17337662e+01   2.49740260e+01   1.90454545e+01   9.61688312e+00
   1.35584416e+01   4.29090909e+01   4.09155844e+01   2.16103896e+02
   1.64487013e+02   8.31233766e+01   3.23961039e+01   1.16883117e-01
   0.00000000e+00   2.12337662e+01   1.63506494e+01   1.44935065e+01
   3.71168831e+01   5.09220779e+01   2.70844156e+01   4.43181818e+01
   8.74285714e+01   1.36045455e+02   4.59090909e+02   1.12292208e+02
   5.25194805e+01   3.11038961e+01   0.00000000e+00   0.00000000e+00
   2.25064935e+01   1.38571429e+01   1.61363636e+01   1.46363636e+01
   4.68181818e+01   3.47792208e+01   1.70071429e+02   1.00162338e+02
   1.64350649e+02   1.98681818e+02   1.75285714e+02   3.86948052e+02
   8.00649351e+00   0.00000000e+00   0.00000000e+00   1.68506494e+01
   2.24805195e+01   4.52792208e+01   4.64805195e+01   6.21558442e+01
   5.58571429e+01   6.94155844e+01   1.03577922e+02   1.93805195e+02
   3.58837662e+02   7.22902597e+02   1.72181818e+02   7.09285714e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   5.25974026e-01
   1.13636364e+01   1.39025974e+01   1.77922078e+01   2.86818182e+01
   3.48051948e+01   8.35129870e+01   1.44909091e+02   5.90467532e+02
   1.00812338e+03   2.25103896e+02   6.97922078e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   6.49350649e-03   9.50649351e+00
   3.84155844e+01   7.34480519e+01   1.32857143e+02   1.90740260e+02
   1.72928571e+02   2.55844156e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.94805195e-02   1.81428571e+01   8.69870130e+01
   6.92272727e+01   8.87532468e+01   1.17571429e+02   5.72532468e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.33116883e+00   0.00000000e+00
   0.00000000e+00   1.29870130e-02   3.86363636e+00   4.61038961e-01
   6.44090909e+01   7.60779221e+01   1.03246753e+00   0.00000000e+00
   0.00000000e+00   2.02857143e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.40259740e+00]
Calculating RMSE...
Last RMSE: 0.000543530377648
n = 20
Removing empty values from our data!
Rows before: 45122
Rows after: 42173
CPU times: user 12min 27s, sys: 944 ms, total: 12min 28s
Wall time: 12min 47s
Partitioned data...
Training model...
Averages Model:
[  6.49350649e-03   0.00000000e+00   0.00000000e+00   2.07792208e-01
   0.00000000e+00   7.20779221e-01   2.60389610e+00   6.88961039e+00
   5.12987013e+00   4.69480519e+00   3.48701299e+00   1.59090909e+00
   1.68181818e+01   1.05844156e+01   7.81168831e+00   1.72077922e+00
   1.53246753e+00   9.09090909e-02   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.40259740e-01   1.70129870e+00   8.05194805e-01
   3.13636364e+00   4.34415584e+00   5.97402597e+00   9.48701299e+00
   3.98701299e+00   9.75974026e+00   6.21428571e+00   1.51298701e+00
   3.24675325e-02   3.04545455e+00   2.62987013e+00   4.27272727e+00
   2.68831169e+00   3.70129870e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.23376623e-01   2.07792208e-01   3.83116883e-01
   2.10389610e+00   2.81168831e+00   3.21428571e+00   7.69480519e+00
   4.72077922e+00   6.55844156e+00   1.68181818e+01   5.48051948e+00
   1.24025974e+00   1.32467532e+00   4.98051948e+00   8.21428571e+00
   1.05389610e+01   1.68831169e+00   0.00000000e+00   0.00000000e+00
   7.14285714e-02   8.44155844e-02   2.07792208e-01   2.53246753e-01
   2.92857143e+00   6.57142857e+00   3.98051948e+00   2.07792208e+00
   4.89610390e+00   3.37662338e+00   6.80519481e+00   6.31168831e+00
   3.33116883e+00   3.85064935e+00   6.94805195e+00   6.12337662e+00
   9.35714286e+00   1.18441558e+01   4.99350649e+00   2.46753247e-01
   3.63636364e-01   9.09090909e-01   1.26623377e+00   2.62337662e+00
   9.87012987e-01   2.34415584e+00   8.70129870e-01   1.72077922e+00
   2.81168831e+00   2.70779221e+00   3.85714286e+00   4.64285714e+00
   3.55844156e+00   7.85064935e+00   1.00064935e+01   4.70129870e+00
   2.68376623e+01   1.11103896e+01   7.40909091e+00   0.00000000e+00
   2.66233766e-01   3.33116883e+00   1.74025974e+00   2.98701299e+00
   1.74025974e+00   1.85064935e+00   4.50000000e+00   5.90909091e-01
   1.35064935e+00   5.38961039e-01   4.09740260e+00   3.76623377e+00
   9.18181818e+00   7.55844156e+00   5.48051948e+00   5.68831169e+00
   2.36363636e+01   4.53246753e+00   8.11688312e-01   0.00000000e+00
   5.25974026e-01   2.79870130e+00   2.48701299e+00   2.92857143e+00
   4.06493506e+00   4.79220779e+00   1.66883117e+00   1.62337662e+00
   3.16883117e+00   1.05194805e+00   3.18831169e+00   4.95454545e+00
   9.92207792e+00   2.74675325e+00   3.40909091e+00   2.91558442e+00
   3.35714286e+00   1.00000000e+00   0.00000000e+00   0.00000000e+00
   9.41558442e-01   1.81168831e+00   1.55844156e+00   1.03246753e+00
   3.13636364e+00   2.20779221e+00   1.17532468e+00   2.18831169e+00
   5.71428571e-01   4.90909091e+00   3.92857143e+00   4.92207792e+00
   2.60844156e+01   1.38831169e+01   1.05714286e+01   4.79220779e+00
   3.84415584e+00   5.19480519e-01   0.00000000e+00   0.00000000e+00
   1.31818182e+00   1.93506494e+00   1.75324675e+00   3.55194805e+00
   3.51298701e+00   2.64935065e+00   2.12337662e+00   4.41558442e-01
   9.41558442e-01   2.85714286e+00   3.02597403e+00   5.48051948e+00
   1.89155844e+01   2.02922078e+01   2.93766234e+01   1.37922078e+01
   2.96753247e+00   1.00000000e+00   0.00000000e+00   0.00000000e+00
   3.12987013e+00   3.62337662e+00   1.87662338e+00   2.71428571e+00
   6.03246753e+00   3.69480519e+00   7.12987013e+00   1.33766234e+00
   3.27272727e+00   4.14935065e+00   2.19415584e+01   1.23766234e+01
   3.61298701e+01   2.12987013e+01   9.47402597e+00   6.54545455e+00
   7.05194805e+00   4.54545455e-01   0.00000000e+00   0.00000000e+00
   9.48051948e-01   4.35064935e-01   3.37662338e-01   4.41558442e-01
   3.13636364e+00   1.10389610e+00   3.66883117e+00   5.23376623e+00
   2.46688312e+01   4.68181818e+00   9.55844156e+00   2.33896104e+01
   4.29740260e+01   1.92337662e+01   1.25389610e+01   5.66233766e+00
   1.46103896e+00   8.18181818e-01   0.00000000e+00   0.00000000e+00
   4.02597403e+00   1.87012987e+00   2.68181818e+00   1.66233766e+00
   1.84415584e+00   1.88961039e+00   1.23246753e+01   4.04545455e+00
   1.10714286e+01   1.56168831e+01   1.35000000e+01   2.01883117e+01
   3.21298701e+01   2.52987013e+01   8.09740260e+01   4.01948052e+00
   1.57142857e+00   7.79220779e-02   0.00000000e+00   0.00000000e+00
   2.77272727e+00   2.54545455e+00   4.58441558e+00   6.33116883e+00
   5.80519481e+00   4.38961039e+00   9.75324675e+00   4.40909091e+00
   3.40259740e+00   7.88311688e+00   1.91558442e+01   1.45259740e+01
   3.00064935e+01   5.98571429e+01   3.51493506e+01   1.56298701e+01
   1.34870130e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.83116883e-01   1.20779221e+00   2.68831169e+00
   4.77922078e+00   3.79870130e+00   7.88311688e+00   7.95454545e+00
   5.74025974e+00   1.05714286e+01   2.13051948e+01   2.33246753e+01
   4.87077922e+01   1.70941558e+02   9.00454545e+01   2.17857143e+01
   1.07142857e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.28571429e-01
   6.49350649e-03   0.00000000e+00   3.11688312e-01   1.25974026e+00
   2.45454545e+00   4.14935065e+00   1.13116883e+01   1.04155844e+01
   5.36818182e+01   3.81103896e+01   6.39870130e+01   1.55064935e+01
   1.19480519e+01   6.49350649e-03   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.81818182e-01   2.18181818e+00   9.77922078e+00   1.02337662e+01
   1.42012987e+01   1.03636364e+01   2.39870130e+01   2.49870130e+01
   2.37012987e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.63636364e-01   9.82467532e+00   1.27402597e+01   7.98701299e+00
   1.12532468e+01   1.03961039e+01   2.00714286e+01   5.96753247e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.14285714e-01   0.00000000e+00   0.00000000e+00
   1.24025974e+00   1.56493506e+00   2.27922078e+00   1.34415584e+00
   8.75974026e+00   2.74935065e+01   8.14285714e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.88311688e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.55844156e-01   3.24675325e-02]
Calculating RMSE...
Random RMSE: 1.50317802183e-05
Training model...
Averages Model:
[  1.29870130e-02   0.00000000e+00   0.00000000e+00   9.15584416e-01
   0.00000000e+00   6.40259740e+00   1.33181818e+01   3.16428571e+01
   2.15909091e+01   1.83376623e+01   1.54610390e+01   8.47402597e+00
   7.35259740e+01   3.61233766e+01   2.98701299e+01   8.99350649e+00
   8.32467532e+00   5.77922078e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.50649351e+00   7.04545455e+00   4.00649351e+00
   1.69805195e+01   2.30324675e+01   2.75324675e+01   4.20389610e+01
   1.89090909e+01   4.86233766e+01   2.91948052e+01   9.59090909e+00
   1.42857143e-01   1.58831169e+01   1.92792208e+01   2.10194805e+01
   1.41298701e+01   1.97402597e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   9.09090909e-01   1.16233766e+00   2.35714286e+00
   1.25064935e+01   1.40909091e+01   1.25584416e+01   3.52272727e+01
   2.58376623e+01   2.91428571e+01   6.99025974e+01   2.65454545e+01
   4.51298701e+00   7.90259740e+00   2.60129870e+01   4.10000000e+01
   5.49285714e+01   7.49350649e+00   0.00000000e+00   0.00000000e+00
   2.98701299e-01   6.49350649e-01   1.18831169e+00   1.55194805e+00
   1.51103896e+01   3.74935065e+01   1.72402597e+01   9.59090909e+00
   3.01753247e+01   1.72792208e+01   3.73506494e+01   3.52792208e+01
   1.99935065e+01   1.54220779e+01   4.05909091e+01   2.34155844e+01
   5.41233766e+01   5.74610390e+01   2.40974026e+01   1.77272727e+00
   1.27922078e+00   5.81168831e+00   7.09090909e+00   1.45064935e+01
   6.17532468e+00   1.35194805e+01   4.71428571e+00   6.53246753e+00
   1.41038961e+01   1.41558442e+01   2.10000000e+01   2.83051948e+01
   1.86948052e+01   3.31558442e+01   4.31168831e+01   2.55779221e+01
   1.12389610e+02   5.64935065e+01   3.52402597e+01   0.00000000e+00
   1.74025974e+00   1.24935065e+01   9.41558442e+00   1.35584416e+01
   7.65584416e+00   9.42857143e+00   1.56623377e+01   4.01948052e+00
   5.77272727e+00   3.16883117e+00   1.52207792e+01   1.77662338e+01
   4.19220779e+01   2.91103896e+01   2.27337662e+01   2.73506494e+01
   1.00402597e+02   2.09220779e+01   4.76623377e+00   0.00000000e+00
   3.14935065e+00   1.18311688e+01   1.07272727e+01   1.41493506e+01
   2.04545455e+01   2.38376623e+01   6.22077922e+00   7.21428571e+00
   1.27662338e+01   6.20779221e+00   1.66363636e+01   2.18116883e+01
   6.30519481e+01   2.01948052e+01   2.15064935e+01   1.19870130e+01
   2.07012987e+01   4.36363636e+00   0.00000000e+00   0.00000000e+00
   5.15584416e+00   9.32467532e+00   8.83766234e+00   7.38311688e+00
   1.51233766e+01   1.06428571e+01   6.12987013e+00   1.28376623e+01
   3.14935065e+00   1.70714286e+01   1.79480519e+01   2.54350649e+01
   1.05512987e+02   8.11493506e+01   4.69740260e+01   3.21623377e+01
   1.82792208e+01   2.78571429e+00   0.00000000e+00   0.00000000e+00
   7.41558442e+00   1.10909091e+01   9.65584416e+00   1.41623377e+01
   1.56168831e+01   1.00779221e+01   1.06753247e+01   2.81168831e+00
   4.42207792e+00   1.60194805e+01   1.87792208e+01   2.23831169e+01
   1.06792208e+02   7.47597403e+01   1.16331169e+02   6.21948052e+01
   1.94740260e+01   3.72727273e+00   0.00000000e+00   0.00000000e+00
   1.74155844e+01   2.03701299e+01   1.15064935e+01   1.32012987e+01
   2.60519481e+01   1.97337662e+01   3.14610390e+01   6.92857143e+00
   1.24610390e+01   2.01298701e+01   1.00090909e+02   5.56363636e+01
   2.64668831e+02   8.96038961e+01   3.32207792e+01   2.74285714e+01
   2.70259740e+01   1.59740260e+00   0.00000000e+00   0.00000000e+00
   3.75974026e+00   2.17532468e+00   1.74025974e+00   1.37662338e+00
   1.06493506e+01   7.66883117e+00   1.72922078e+01   2.18116883e+01
   1.10350649e+02   1.89545455e+01   3.91818182e+01   1.05538961e+02
   2.29558442e+02   9.63896104e+01   4.88311688e+01   2.18831169e+01
   7.66883117e+00   4.55844156e+00   0.00000000e+00   0.00000000e+00
   1.92662338e+01   9.81168831e+00   1.00714286e+01   1.24675325e+01
   1.03831169e+01   8.90909091e+00   4.54610390e+01   1.94610390e+01
   5.19675325e+01   7.15064935e+01   6.56168831e+01   8.67207792e+01
   1.21331169e+02   1.35467532e+02   4.00285714e+02   1.97857143e+01
   7.28571429e+00   2.85714286e-01   0.00000000e+00   0.00000000e+00
   1.17727273e+01   1.33636364e+01   2.23181818e+01   2.45389610e+01
   2.72142857e+01   2.49805195e+01   3.94805195e+01   2.01818182e+01
   1.87077922e+01   5.31883117e+01   9.11883117e+01   9.03311688e+01
   1.24577922e+02   3.23792208e+02   2.08727273e+02   7.66168831e+01
   5.29285714e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   7.14285714e-02   1.55844156e+00   6.29870130e+00   1.46623377e+01
   1.88441558e+01   1.81298701e+01   3.52012987e+01   3.24935065e+01
   2.48181818e+01   5.65909091e+01   8.37142857e+01   1.06071429e+02
   2.78883117e+02   9.10350649e+02   4.72448052e+02   1.03402597e+02
   5.12857143e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.91558442e+00
   4.54545455e-02   2.59740260e-02   1.44805195e+00   6.83116883e+00
   1.57142857e+01   2.66233766e+01   4.61558442e+01   5.01818182e+01
   2.31214286e+02   1.52954545e+02   2.32740260e+02   9.67597403e+01
   4.92857143e+01   7.79220779e-02   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.04545455e+00   1.15844156e+01   3.74350649e+01   3.80454545e+01
   6.23506494e+01   4.86428571e+01   1.48688312e+02   1.01993506e+02
   1.27272727e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.94805195e-02
   3.37662338e+00   4.12402597e+01   5.69935065e+01   4.07532468e+01
   5.12987013e+01   5.17857143e+01   8.03896104e+01   2.47662338e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.33116883e+00   0.00000000e+00   0.00000000e+00
   5.80519481e+00   8.61688312e+00   1.39805195e+01   7.92857143e+00
   5.10844156e+01   1.13870130e+02   3.19025974e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.04220779e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   9.67532468e-01   2.98701299e-01]
Calculating RMSE...
Last RMSE: 0.000467528977723
n = 25
Removing empty values from our data!
Rows before: 67760
Rows after: 62444
CPU times: user 16min 8s, sys: 836 ms, total: 16min 9s
Wall time: 16min 23s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.68831169e-01   0.00000000e+00   1.29870130e-01   1.66233766e+00
   2.43506494e+00   3.58441558e+00   2.43506494e+00   2.57142857e+00
   1.59740260e+00   1.50000000e+00   9.87012987e-01   6.97402597e+00
   1.16818182e+01   2.39610390e+00   3.62987013e+00   1.16883117e+00
   3.50649351e-01   6.49350649e-02   6.49350649e-03   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.54545455e-02
   1.17532468e+00   3.89610390e-01   7.59740260e-01   3.16883117e+00
   2.85714286e+00   3.67532468e+00   6.05194805e+00   2.30519481e+00
   3.42857143e+00   8.17532468e+00   4.68181818e+00   2.98701299e-01
   6.49350649e-02   2.31168831e+00   1.87012987e+00   3.87012987e+00
   1.22077922e+00   5.51948052e-01   1.06493506e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.85714286e-01   0.00000000e+00   6.16883117e-01   3.76623377e+00
   2.66883117e+00   1.42857143e+00   4.55194805e+00   3.75974026e+00
   2.62987013e+00   4.27272727e+00   6.64935065e+00   3.09090909e+00
   3.27272727e+00   7.14285714e-02   2.20779221e-01   1.44805195e+00
   2.98051948e+00   5.42207792e+00   4.83766234e+00   5.07792208e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.49350649e-03   3.89610390e-01   0.00000000e+00   1.42857143e-01
   5.90909091e-01   1.12987013e+00   1.26623377e+00   3.16233766e+00
   5.30519481e+00   8.04545455e+00   2.91558442e+00   5.22727273e+00
   1.10389610e+01   1.86363636e+00   1.35064935e+00   1.01948052e+00
   2.15584416e+00   5.81168831e+00   4.16233766e+00   3.56493506e+00
   8.37662338e-01   2.53246753e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   9.74025974e-02   1.55844156e-01   2.92207792e-01
   2.92207792e-01   2.00000000e+00   6.50000000e+00   1.66883117e+00
   9.93506494e-01   6.75324675e-01   7.14285714e-01   1.22077922e+00
   2.05844156e+00   6.48051948e+00   4.46753247e+00   2.74675325e+00
   2.03896104e+00   2.27922078e+00   5.64285714e+00   4.02597403e+00
   6.00000000e+00   1.15909091e+01   8.38961039e+00   3.98701299e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   9.54545455e-01
   1.15584416e+00   2.32467532e+00   7.01298701e-01   2.22727273e+00
   1.09090909e+00   7.40259740e-01   1.25324675e+00   1.83116883e+00
   2.07792208e+00   2.57792208e+00   3.80519481e+00   3.00000000e+00
   2.56493506e+00   4.33766234e+00   3.24675325e+00   1.03181818e+01
   3.74675325e+00   1.56233766e+01   6.19480519e+00   7.94155844e+00
   2.41558442e+00   0.00000000e+00   0.00000000e+00   1.68181818e+00
   1.54545455e+00   7.79220779e-01   2.29220779e+00   1.02597403e+00
   9.80519481e-01   1.53896104e+00   5.58441558e-01   5.12987013e-01
   1.18181818e+00   5.90909091e-01   1.33766234e+00   1.78571429e+00
   3.83766234e+00   4.09090909e+00   5.02597403e+00   2.42857143e+00
   2.24025974e+00   4.48051948e+00   2.68831169e+01   4.87662338e+00
   3.68181818e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.50649351e+00   1.52597403e+00   1.54545455e+00   1.58441558e+00
   4.35714286e+00   4.00000000e+00   2.99350649e+00   1.23376623e+00
   5.45454545e-01   5.51948052e-01   1.88311688e-01   1.74675325e+00
   1.11688312e+00   2.57142857e+00   9.25974026e+00   1.17532468e+00
   2.51948052e+00   3.28571429e+00   8.31168831e-01   2.07792208e+00
   5.01948052e+00   1.88311688e-01   0.00000000e+00   0.00000000e+00
   5.19480519e-02   1.39610390e+00   1.07792208e+00   1.35064935e+00
   1.00000000e+00   2.42857143e+00   1.57142857e+00   1.70779221e+00
   7.92207792e-01   3.71428571e+00   2.74025974e+00   8.24675325e-01
   1.48051948e+00   2.20779221e+00   2.01948052e+00   8.34415584e+00
   5.26623377e+00   3.92207792e+00   2.00000000e+00   1.54545455e+00
   1.98701299e+00   7.27272727e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   4.41558442e-01   1.51948052e+00   1.04545455e+00
   1.50649351e+00   1.27272727e+00   1.03896104e+00   1.62337662e+00
   1.44155844e+00   7.92207792e-01   2.92207792e-01   1.94805195e-01
   2.50649351e+00   2.24025974e+00   4.14285714e+00   2.28571429e+00
   1.21883117e+01   1.57402597e+01   8.88961039e+00   3.89610390e+00
   4.77922078e+00   3.36363636e+00   1.43506494e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.01298701e-01   2.01948052e+00
   1.31818182e+00   1.08441558e+00   1.79220779e+00   2.59090909e+00
   1.53246753e+00   1.32467532e+00   8.31168831e-01   3.18181818e-01
   2.79220779e-01   2.32467532e+00   2.50000000e+00   1.98701299e+00
   3.01948052e+00   1.51233766e+01   1.23246753e+01   2.40844156e+01
   6.90909091e+00   1.09415584e+01   1.47402597e+00   1.12337662e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.37662338e+00
   2.78571429e+00   2.05844156e+00   1.68831169e+00   1.91558442e+00
   2.21428571e+00   2.03896104e+00   2.13636364e+00   2.47402597e+00
   8.44155844e-02   8.05194805e-01   2.81818182e+00   4.92207792e+00
   1.18246753e+01   8.27922078e+00   1.64155844e+01   1.15194805e+01
   8.52597403e+00   3.41558442e+00   3.66883117e+00   3.03246753e+00
   2.05844156e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.29220779e+00   1.33766234e+00   1.03896104e+00   1.09090909e+00
   1.41558442e+00   3.16883117e+00   2.77922078e+00   5.48701299e+00
   3.57142857e+00   2.78571429e+00   2.72077922e+00   2.27272727e+00
   2.78571429e+00   1.16103896e+01   7.55844156e+00   5.36103896e+01
   1.61818182e+01   9.45454545e+00   4.63636364e+00   4.40259740e+00
   3.07142857e+00   1.54545455e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.23376623e+00   0.00000000e+00   1.16883117e-01
   6.49350649e-02   8.37662338e-01   4.61038961e-01   1.94805195e-02
   1.94805195e-02   7.01298701e-01   2.75974026e+00   1.12922078e+01
   1.17922078e+01   2.77272727e+00   7.42857143e+00   1.47142857e+01
   1.08571429e+01   1.23766234e+01   8.96103896e+00   5.16233766e+00
   1.89610390e+00   4.93506494e-01   2.40259740e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   3.93506494e+00   2.40909091e+00
   1.57792208e+00   1.36363636e+00   2.16233766e+00   9.22077922e-01
   1.26623377e+00   7.72077922e+00   2.72077922e+00   4.48051948e+00
   6.57142857e+00   5.70779221e+00   9.61688312e+00   1.00519481e+01
   1.21558442e+01   1.68896104e+01   2.23766234e+01   1.22662338e+01
   5.33766234e+01   2.07792208e+00   1.39610390e+00   1.23376623e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.80519481e+00
   1.38961039e+00   2.11038961e+00   2.98701299e+00   2.48051948e+00
   1.55844156e+00   2.17532468e+00   2.38961039e+00   2.40909091e+00
   3.15584416e+00   1.55194805e+00   6.68181818e+00   8.47402597e+00
   1.29675325e+01   1.15194805e+01   1.63961039e+01   4.47727273e+01
   1.81038961e+01   1.25649351e+01   7.42857143e+00   9.03896104e+00
   1.94805195e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.36363636e-01   7.92207792e-01   4.35064935e-01   1.77922078e+00
   3.14935065e+00   4.82467532e+00   4.74025974e+00   4.11688312e+00
   6.19480519e+00   3.17532468e+00   2.66883117e+00   5.73376623e+00
   1.23571429e+01   1.96233766e+01   1.11428571e+01   2.99415584e+01
   8.72337662e+01   1.17915584e+02   2.27597403e+01   1.27857143e+01
   6.77922078e+00   3.02597403e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.49350649e-01
   2.07792208e-01   1.30519481e+00   7.07792208e-01   1.24025974e+00
   1.31818182e+00   2.10389610e+00   2.20129870e+00   2.55194805e+00
   4.04545455e+00   4.13636364e+00   1.08831169e+01   8.39610390e+00
   3.96623377e+01   6.38441558e+01   6.58051948e+01   4.15584416e+01
   1.02857143e+01   5.79870130e+00   1.07792208e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   4.54545455e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.33766234e-01
   5.32467532e-01   1.62337662e+00   2.28571429e+00   6.24675325e+00
   6.42207792e+00   1.78506494e+01   1.25000000e+01   1.60064935e+01
   1.89155844e+01   1.23831169e+01   6.85714286e+00   7.01298701e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.06493506e+00   1.83116883e+00
   6.57792208e+00   6.57792208e+00   8.89610390e+00   4.61688312e+00
   2.30454545e+01   1.70129870e+01   1.56623377e+01   1.24675325e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   3.63636364e+00
   6.93506494e+00   7.50000000e+00   5.79220779e+00   7.30519481e+00
   5.01948052e+00   1.65974026e+01   6.77922078e+00   2.54545455e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.14285714e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.28571429e+00
   1.51948052e+00   2.79870130e+00   2.61038961e+00   1.99350649e+00
   1.03961039e+01   1.35389610e+01   8.57792208e+00   5.55194805e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.70779221e+00   1.13246753e+01   4.54545455e+00
   3.44155844e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   4.72077922e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.14285714e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.42857143e-01]
Calculating RMSE...
Random RMSE: 1.07337726837e-05
Training model...
Averages Model:
[  1.29870130e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   7.66233766e-01   0.00000000e+00   4.28571429e-01   6.87662338e+00
   9.57142857e+00   1.79155844e+01   1.55064935e+01   1.31103896e+01
   7.46753247e+00   6.28571429e+00   5.82467532e+00   3.90519481e+01
   5.58246753e+01   1.53376623e+01   1.68636364e+01   5.19480519e+00
   1.33116883e+00   5.06493506e-01   7.14285714e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.98701299e-01
   6.74675325e+00   2.44805195e+00   5.61688312e+00   1.30259740e+01
   1.28441558e+01   2.10324675e+01   2.63636364e+01   9.83116883e+00
   1.70974026e+01   3.37337662e+01   1.89285714e+01   1.24025974e+00
   1.81818182e-01   1.51103896e+01   1.42467532e+01   1.47922078e+01
   4.99350649e+00   2.22077922e+00   8.62987013e+00   3.24675325e-02
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.50649351e+00   0.00000000e+00   2.85064935e+00   1.79935065e+01
   1.49090909e+01   1.13571429e+01   1.83636364e+01   1.70649351e+01
   1.79285714e+01   2.09415584e+01   3.12662338e+01   1.72987013e+01
   1.49545455e+01   2.07792208e-01   1.27922078e+00   8.33766234e+00
   1.66493506e+01   2.35909091e+01   2.98441558e+01   2.86948052e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   3.24675325e-02   2.07142857e+00   0.00000000e+00   1.29220779e+00
   4.07792208e+00   4.66233766e+00   4.56493506e+00   1.72012987e+01
   2.53051948e+01   3.47142857e+01   1.46948052e+01   2.76558442e+01
   4.38766234e+01   1.40519481e+01   6.31168831e+00   5.61038961e+00
   8.03896104e+00   2.64090909e+01   1.78701299e+01   1.83766234e+01
   4.23376623e+00   1.22727273e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   4.80519481e-01   5.32467532e-01   1.29870130e+00
   1.26623377e+00   1.13506494e+01   3.57012987e+01   7.78571429e+00
   6.35064935e+00   4.40259740e+00   4.68181818e+00   6.68181818e+00
   1.10519481e+01   3.25000000e+01   2.03701299e+01   1.47012987e+01
   9.94805195e+00   1.33506494e+01   3.04610390e+01   1.93246753e+01
   3.77662338e+01   4.42987013e+01   3.14415584e+01   1.61688312e+01
   3.89610390e-02   0.00000000e+00   0.00000000e+00   3.87662338e+00
   3.78571429e+00   1.32012987e+01   4.05194805e+00   1.14220779e+01
   5.25974026e+00   3.01298701e+00   4.70129870e+00   8.09090909e+00
   9.79220779e+00   1.01818182e+01   1.78311688e+01   1.62142857e+01
   1.09480519e+01   2.32857143e+01   1.43311688e+01   3.56038961e+01
   1.54090909e+01   7.54545455e+01   3.29090909e+01   3.77922078e+01
   1.08831169e+01   0.00000000e+00   0.00000000e+00   9.87012987e+00
   8.09090909e+00   5.31818182e+00   8.31818182e+00   3.58441558e+00
   4.08441558e+00   7.44805195e+00   3.59090909e+00   1.98701299e+00
   5.86363636e+00   2.95454545e+00   7.38961039e+00   1.05129870e+01
   1.81103896e+01   2.22727273e+01   2.22532468e+01   1.42532468e+01
   1.01883117e+01   2.51753247e+01   1.07701299e+02   2.62142857e+01
   1.98181818e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.68181818e+00   6.96103896e+00   8.23376623e+00   9.33766234e+00
   1.64415584e+01   1.55649351e+01   1.11688312e+01   6.57792208e+00
   3.56493506e+00   4.08441558e+00   1.22077922e+00   5.87662338e+00
   7.00649351e+00   1.35584416e+01   5.36558442e+01   1.06363636e+01
   1.54415584e+01   1.50389610e+01   5.97402597e+00   1.02532468e+01
   2.36883117e+01   1.24675325e+00   0.00000000e+00   0.00000000e+00
   3.96103896e-01   8.26623377e+00   4.26623377e+00   5.48701299e+00
   5.97402597e+00   1.14155844e+01   9.05194805e+00   7.95454545e+00
   3.03896104e+00   1.43051948e+01   1.00000000e+01   5.44155844e+00
   8.87012987e+00   9.38311688e+00   1.26753247e+01   4.08506494e+01
   2.60064935e+01   1.87272727e+01   1.35454545e+01   9.24675325e+00
   5.82467532e+00   4.37012987e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.83116883e+00   6.55844156e+00   6.49350649e+00
   6.47402597e+00   5.03246753e+00   4.75974026e+00   6.98051948e+00
   5.49350649e+00   3.38961039e+00   1.31818182e+00   2.09740260e+00
   1.13766234e+01   9.26623377e+00   1.76753247e+01   1.50454545e+01
   5.57922078e+01   7.60259740e+01   4.35519481e+01   1.86428571e+01
   2.73441558e+01   1.30259740e+01   7.16233766e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.82467532e+00   7.59090909e+00
   5.64935065e+00   6.90909091e+00   8.20129870e+00   9.18831169e+00
   9.45454545e+00   5.66883117e+00   3.98701299e+00   1.64935065e+00
   1.60389610e+00   9.83766234e+00   9.37012987e+00   9.78571429e+00
   1.41688312e+01   7.19155844e+01   5.86558442e+01   1.03181818e+02
   2.79675325e+01   5.21688312e+01   8.08441558e+00   7.06493506e+00
   6.49350649e-03   0.00000000e+00   0.00000000e+00   7.92207792e+00
   1.53896104e+01   8.22727273e+00   7.74675325e+00   8.04545455e+00
   8.51948052e+00   9.69480519e+00   8.98701299e+00   1.22077922e+01
   6.62337662e-01   3.88311688e+00   1.31363636e+01   1.92597403e+01
   6.47337662e+01   3.44480519e+01   8.46233766e+01   7.09220779e+01
   4.05584416e+01   1.47012987e+01   1.54155844e+01   1.59155844e+01
   1.00779221e+01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   5.96103896e+00   8.30519481e+00   5.51948052e+00   4.86363636e+00
   6.18181818e+00   1.64025974e+01   1.56818182e+01   2.89675325e+01
   2.02272727e+01   1.33116883e+01   1.66623377e+01   1.17207792e+01
   1.11753247e+01   5.72597403e+01   3.43181818e+01   2.99214286e+02
   8.68376623e+01   5.95389610e+01   2.35389610e+01   1.71948052e+01
   1.22337662e+01   7.48701299e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   4.70779221e+00   0.00000000e+00   5.38961039e-01
   2.53246753e-01   1.93506494e+00   2.71428571e+00   1.16883117e-01
   2.46753247e-01   2.55194805e+00   1.19870130e+01   9.83116883e+01
   4.76298701e+01   1.41623377e+01   3.24740260e+01   8.30714286e+01
   7.25584416e+01   6.02727273e+01   4.09350649e+01   2.40519481e+01
   8.04545455e+00   2.19480519e+00   1.22727273e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.59935065e+01   8.44805195e+00
   8.02597403e+00   7.01948052e+00   9.22727273e+00   6.89610390e+00
   7.57142857e+00   3.76558442e+01   1.38701299e+01   1.67727273e+01
   2.85649351e+01   2.89285714e+01   4.99545455e+01   5.01753247e+01
   5.51233766e+01   8.63766234e+01   8.81168831e+01   5.32987013e+01
   3.77298701e+02   1.11428571e+01   6.61688312e+00   7.14285714e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   9.29220779e+00
   7.79870130e+00   9.61688312e+00   1.56623377e+01   1.14740260e+01
   1.05909091e+01   9.21428571e+00   1.24090909e+01   2.02597403e+01
   1.22662338e+01   8.38311688e+00   3.32467532e+01   4.34220779e+01
   5.01818182e+01   5.90389610e+01   7.12402597e+01   2.05987013e+02
   1.11214286e+02   6.69610390e+01   4.67987013e+01   4.33311688e+01
   2.40259740e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.49350649e-01   3.88961039e+00   2.18831169e+00   1.21558442e+01
   1.50000000e+01   2.17857143e+01   1.99610390e+01   2.43051948e+01
   3.44155844e+01   2.15194805e+01   1.87272727e+01   3.25064935e+01
   4.33636364e+01   8.66818182e+01   5.37077922e+01   1.27396104e+02
   4.17032468e+02   6.23863636e+02   8.63831169e+01   6.35519481e+01
   3.54090909e+01   9.35714286e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   5.25974026e-01
   1.31818182e+00   6.79220779e+00   4.09090909e+00   4.54545455e+00
   6.18181818e+00   1.01038961e+01   1.19740260e+01   1.40000000e+01
   1.95974026e+01   2.75389610e+01   5.44090909e+01   5.08701299e+01
   1.92006494e+02   3.02694805e+02   3.39623377e+02   1.82324675e+02
   6.19870130e+01   3.28311688e+01   4.53896104e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.36363636e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.25324675e+00
   3.10389610e+00   1.05259740e+01   1.15779221e+01   3.22272727e+01
   2.56103896e+01   9.12532468e+01   7.31168831e+01   7.55389610e+01
   7.69935065e+01   5.97532468e+01   3.21753247e+01   3.29870130e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.14935065e+00   1.17792208e+01
   3.02532468e+01   2.34935065e+01   4.30779221e+01   2.66883117e+01
   8.16818182e+01   7.93246753e+01   6.76493506e+01   5.12337662e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   6.49350649e-03   0.00000000e+00   1.81493506e+01
   4.47337662e+01   3.45909091e+01   2.67207792e+01   3.18766234e+01
   2.26363636e+01   6.65194805e+01   4.33571429e+01   1.56558442e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.33116883e+00
   0.00000000e+00   0.00000000e+00   1.29870130e-02   4.85714286e+00
   7.94805195e+00   1.31168831e+01   1.52272727e+01   1.33506494e+01
   3.63701299e+01   5.50000000e+01   3.36948052e+01   1.98636364e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   7.36363636e+00   4.12142857e+01   3.01363636e+01
   1.40909091e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.02857143e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   3.83116883e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.01948052e+00]
Calculating RMSE...
Last RMSE: 0.000305175717965

In [ ]:
x = testN[:len(rmses)]
y1,y2 = zip(*rmses)
line1 = plt.plot(x, y1, label="Final 12 Time Units")
line2 = plt.plot(x, y2, label="Random Sample Data")
plt.title('Baseline Predictions for San Francisco')
plt.xlabel('Dimension of Grid')
plt.ylabel('Root Mean Square Error')
plt.legend()
plt.show()

In [ ]: