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

In [10]:
'''
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 [11]:
'''
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 [12]:
# 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 [13]:
# Generate a plot of the RMSEs that we calculated
import seaborn as sns
import matplotlib.pyplot as plt

sns.set_style("darkgrid")

In [14]:
# Let's make a plot for some values of N to see if the data works out...
data_file = '../../cs281_data/large_data/bosclean.pk'
with open(data_file) as fp:
    data = pickle.load(fp)

In [ ]:


In [26]:
def KL(p,q):
    logs = np.copy(p + sys.float_info.epsilon)
    # print logs
    logs = p*np.log(logs/q)
    # print logs
    return np.sum(logs)

In [107]:
# 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 = n * n
    
    # 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)
        print (X_train[:, columns['count']] > 0).sum()
    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 len(model)
    # print "Averages Model:"
    # print model
    sys.stdout.flush()
    
    # Generate predictions vector
    predictions_optimal = model[X_test[:, columns['region']]]
    print len(predictions_optimal)
    test_t = X_test[:, columns['count']].astype(float)
    # print test_t
    
    # Create distributions, and calculate the KL of the distribution
    preds2 = predictions_optimal
    # print len(preds2)
    # print "Preds2: {}".format(preds2)
    # print test_t[:-100]
    preds_p = preds2.clip(min=sys.float_info.epsilon)
    n_preds = preds_p / np.sum(preds_p)
    n_test_t = test_t
    n_test_t = n_test_t
    n_test_t = n_test_t / np.sum(n_test_t)
    
    print "Division {}".format(abs(n_test_t / n_preds))
    
    print "Test {}".format(test_t)
    
    # print n_preds
    # print n_test_t[:-100]
    # print "Testing {}".format(n_test_t / n_preds)
    plt.plot(test_t, label="Actual Data")
    plt.plot(preds2, label="Predictive Data")
    plt.xlabel("Combined Region and Month Feature")
    plt.ylabel("Crime Count")
    plt.legend()
    plt.show("Boston Baseline Data")
    
    # Plot the figure if we're predicting on the end!
    if plot is not None:
        
        plotDistribution(predict, true, 'boston', n, process='Baseline')
        
        plotHeatMaps(X_test, predict, 'boston', n, process='Baseline')
            
    # print "Calculating KL Divergence..."
    sys.stdout.flush()
    
    # print ((n_test_t - n_preds)**2).sum()
    assert(len(n_test_t) == 800)
    assert(len(n_preds) == 800)
    return KL(n_test_t, n_preds)

In [108]:
sys.stdout.flush()

KL_Divergence = averageModel(n, X_region, plot=None, splitMethod='last', testPeriods=12)
print "KL Divergence: {}".format(KL_Divergence)
sys.stdout.flush()


1436
Training model...
100
627
Division [  4.82086061e-01   1.25342376e+00   4.82086061e-01   1.06058933e+00
   3.85668849e-01   9.64172121e-01   8.67754909e-01   8.67754909e-01
   6.74920485e-01   1.73550982e+00   1.25342376e+00   3.85668849e-01
   1.12146182e+00   7.20939742e-01   8.54447102e-01   8.81148574e-01
   5.07327967e-01   9.07850045e-01   8.81148574e-01   6.14133854e-01
   8.27745630e-01   3.20417663e-01   1.18286994e+00   7.09721964e-01
   8.28008958e-01   1.06458295e+00   1.30115693e+00   8.87152455e-01
   5.91434970e-01   6.50578467e-01   4.14004479e-01   1.24201344e+00
   2.12916589e+00   5.91434970e-01   2.39886024e+00   1.19943012e+00
   1.19943012e+00   2.39886024e+00   1.79914518e+00   1.19943012e+00
   1.19943012e+00   1.79914518e+00   5.99715059e-01   5.99715059e-01
   3.14055409e+15   3.14055409e+15   1.97274691e+00   1.43024151e+00
   1.57819752e+00   8.87736108e-01   8.38417435e-01   5.91824072e-01
   5.42505399e-01   9.37054780e-01   5.42505399e-01   1.13432947e+00
   1.57819752e+00   5.42505399e-01   1.41281371e+00   1.24230171e+00
   9.49995423e-01   9.98713137e-01   7.30765710e-01   1.41281371e+00
   8.28201138e-01   8.52559995e-01   8.03842281e-01   2.92306284e-01
   9.42166227e+15   6.28110818e+15   3.14055409e+15   1.98143742e+00
   1.45305411e+00   9.24670797e-01   6.60479140e-01   9.24670797e-01
   7.92574968e-01   3.96287484e-01   1.05676662e+00   5.28383312e-01
   1.32095828e+00   7.92574968e-01   1.32095828e-01   1.28411211e+00
   8.67643315e-01   7.63526117e-01   7.28820385e-01   1.04117198e+00
   9.37054780e-01   7.63526117e-01   1.17999491e+00   1.24940637e+00
   9.37054780e-01   1.07587771e+00   3.81763059e-01   8.75690131e-01
   1.08797865e+00   8.75690131e-01   9.81834389e-01   7.96081937e-01
   1.06144258e+00   1.14105078e+00   6.63401614e-01   1.06144258e+00
   4.77649162e-01   8.03037259e-01   1.24727064e+00   7.00521864e-01
   8.88466755e-01   7.68865461e-01   1.33270013e+00   8.37209057e-01
   9.39724452e-01   9.22638553e-01   1.05932575e+00   8.54294956e-01
   5.46748772e-01   1.93456471e+00   1.93456471e+00   1.93456471e+00
   9.67282354e-01   2.90184706e+00   2.90184706e+00   1.32006363e+00
   1.20836593e+00   1.00527922e+00   1.13728559e+00   7.92038175e-01
   1.13728559e+00   1.07635957e+00   8.32655518e-01   1.02558789e+00
   1.17790293e+00   1.62469369e+00   3.85864752e-01   1.49211402e+00
   1.37016240e+00   9.97133891e-01   1.01865477e+00   1.04017564e+00
   1.09756464e+00   1.02582839e+00   8.46487763e-01   9.75613015e-01
   5.09327383e-01   7.13946499e-01   1.42789300e+00   7.13946499e-01
   7.13946499e-01   7.13946499e-01   1.42789300e+00   9.99525099e+00
   1.35649835e+01   6.42551849e+00   1.23229122e+00   1.03899063e+00
   7.00714614e-01   1.11147835e+00   8.45690052e-01   9.42340343e-01
   7.24877187e-01   1.01482806e+00   1.15980350e+00   4.59088885e-01
   1.03899063e+00   1.93300583e-01   1.17391033e+00   1.07183117e+00
   1.03780478e+00   8.59166255e-01   1.14839054e+00   1.02929819e+00
   1.13988394e+00   1.08033777e+00   1.14839054e+00   9.78258608e-01
   1.13988394e+00   2.72211091e-01   1.39440420e+00   1.34590319e+00
   1.05489709e+00   9.82145568e-01   1.06702235e+00   8.73018283e-01
   1.10339811e+00   9.45769807e-01   1.10339811e+00   4.72884903e-01
   1.00918084e+00   1.14000058e+00   8.12951234e-01   1.07459071e+00
   8.50328302e-01   1.07459071e+00   8.12951234e-01   9.25082438e-01
   8.22295501e-01   9.62459506e-01   1.30819739e+00   3.73770682e-01
   1.42789300e+00   9.51928666e-01   7.61542933e-01   9.04332233e-01
   8.09139366e-01   9.04332233e-01   6.42551849e-01   5.47358983e-01
   6.66350066e-01   1.66587517e-01   1.71674158e+00   1.03004495e+00
   8.01146072e-01   1.60229214e+00   4.57797755e-01   5.72247194e-01
   5.72247194e-01   1.48784270e+00   1.14449439e+00   2.17453934e+00
   4.34907868e+00   9.15595511e-01   1.71347160e+00   1.14231440e+00
   1.71347160e+00   1.14231440e+00   1.71347160e+00   8.56735799e-01
   1.42789300e+00   1.14231440e+00   8.56735799e-01   1.14231440e+01
   2.34174452e+01   6.85388639e+00   1.16783775e+00   1.27584586e+00
   1.18133876e+00   1.00582557e+00   8.37062893e-01   9.51821515e-01
   8.23561878e-01   9.85574051e-01   8.70815429e-01   3.91529417e-01
   1.11058344e+00   1.11058344e+00   1.11058344e+00   1.22164179e+01
   2.11010854e+01   1.11058344e+01   1.36298877e+00   1.36298877e+00
   8.95097104e-01   9.63950727e-01   9.29523915e-01   8.26243480e-01
   9.29523915e-01   1.20493841e+00   1.17051160e+00   1.13608479e+00
   8.95097104e-01   2.10003551e+00   3.61481523e+00   9.29523915e-01
   1.09342363e+00   1.35288008e+00   1.18608664e+00   1.06562472e+00
   1.12122253e+00   9.54429096e-01   9.82228002e-01   1.04709212e+00
   1.15828774e+00   4.91114001e-01   1.37610413e+00   1.33171368e+00
   1.15415185e+00   7.54637751e-01   9.10004346e-01   1.06537094e+00
   1.53147073e+00   1.04317571e+00   1.39829936e+00   1.24293277e+00
   2.06415620e+00   5.32685471e-01   1.21215343e+00   1.44426792e+00
   1.14337877e+00   9.88635777e-01   1.00582944e+00   9.02667449e-01
   9.62845279e-01   8.59683285e-01   1.07460411e+00   3.69663812e-01
   1.29101942e+00   1.21388304e+00   1.18140456e+00   1.01901218e+00
   8.72859043e-01   8.89098281e-01   6.69868568e-01   7.42945139e-01
   7.83543234e-01   8.97217900e-01   1.01495238e+00   3.00425903e-01
   1.29887053e+00   1.28955963e+00   1.06609803e+00   9.72989035e-01
   8.93846386e-01   8.89190936e-01   7.44871988e-01   1.03350988e+00
   1.11730798e+00   9.12468185e-01   9.91610834e-01   2.88637895e-01
   1.46093803e+00   1.02265662e+00   7.30469013e-01   9.49609717e-01
   8.40039365e-01   6.57422111e-01   6.57422111e-01   8.03515914e-01
   1.13222697e+00   1.82617253e-01   9.42166227e+15   3.45460950e+16
   6.28110818e+15   4.71083114e+16   1.00497731e+17   3.76866491e+16
   1.19472954e+00   1.32203679e+00   1.18493668e+00   1.24369387e+00
   1.21431527e+00   1.09680089e+00   1.06742230e+00   1.12617949e+00
   1.01845797e+00   4.99436121e-01   1.13466364e+00   1.18155057e+00
   1.09402831e+00   1.13153785e+00   9.31486958e-01   9.31486958e-01
   9.90877066e-01   9.06480596e-01   9.47115934e-01   1.11590887e+00
   1.44099157e+00   4.00101781e-01   1.08473250e+00   1.22372329e+00
   1.11494789e+00   1.19048636e+00   9.48763244e-01   8.52073996e-01
   9.57827861e-01   8.73224769e-01   1.02128018e+00   4.26036998e-01
   1.18405546e+00   1.19179438e+00   9.08033813e-01   1.03701589e+00
   8.15166719e-01   7.22299624e-01   8.53861342e-01   8.46122417e-01
   1.02411768e+00   1.10924585e+00   1.45491781e+00   3.61149812e-01
   1.24150808e+00   1.20817900e+00   1.07902883e+00   1.06653043e+00
   8.47808368e-01   7.66568746e-01   8.91552780e-01   8.81137444e-01
   9.45712529e-01   1.20817900e+00   1.57896497e+00   3.93699709e-01
   1.13828335e+00   1.43004550e+00   1.19992324e+00   1.00678491e+00
   7.93099948e-01   6.69820164e-01   8.01318601e-01   9.36926364e-01
   1.07664345e+00   4.72572508e-01   1.49928765e+00   1.49928765e+00
   1.49928765e+00   5.99715059e+00   4.49786295e+00   4.49786295e+00
   4.49786295e+00   1.94907394e+01   7.49643824e+00   1.07091975e+00
   1.45339109e+00   6.88448410e-01   8.41436946e-01   6.88448410e-01
   6.88448410e-01   7.64942678e-01   9.94425481e-01   1.14741402e+00
   1.07091975e+00   3.14055409e+15   9.42166227e+15   4.71083114e+16
   6.28110818e+15   1.56345949e+00   1.33010733e+00   1.44678341e+00
   1.33010733e+00   1.09675517e+00   7.93397355e-01   7.93397355e-01
   5.60045192e-01   1.02674952e+00   3.50028245e-01   1.20649251e+00
   1.19808490e+00   9.54264114e-01   9.87894567e-01   7.39869974e-01
   9.92098374e-01   9.54264114e-01   8.95410821e-01   8.61780367e-01
   9.62671727e-01   1.47553614e+00   4.03565440e-01   1.29614477e+00
   1.29915207e+00   1.19088940e+00   1.09465591e+00   9.83385941e-01
   8.63094083e-01   1.02548809e+00   1.03450998e+00   1.13375076e+00
   5.35298769e-01   1.15600928e+00   1.17715579e+00   1.02208138e+00
   8.98726729e-01   6.83737198e-01   6.69639523e-01   8.07091847e-01
   7.36603476e-01   7.22505802e-01   1.14543603e+00   1.80450229e+00
   5.60382549e-01   1.03566313e+00   1.25601699e+00   1.12380467e+00
   9.69556974e-01   8.28530505e-01   7.53610194e-01   8.59380046e-01
   8.77008354e-01   8.81415431e-01   1.28686653e+00   2.15506073e+00
   5.64105876e-01   1.33617562e+00   1.27327677e+00   1.23927739e+00
   1.11347969e+00   9.85982013e-01   7.59886137e-01   1.06078065e+00
   1.03698108e+00   1.19847814e+00   5.26990386e-01   1.02795386e+00
   1.37248785e+00   1.14091582e+00   1.15221202e+00   9.60176682e-01
   1.01665766e+00   9.94065271e-01   9.54528584e-01   1.02795386e+00
   1.43461693e+00   2.20840637e+00   5.53513617e-01   1.46719281e+00
   1.19209415e+00   1.10039460e+00   1.37549326e+00   4.58497752e-01
   8.25295953e-01   3.66798202e-01   7.33596403e-01   4.58497752e-01
   1.83399101e-01   1.72994729e+00   1.72994729e+00   1.72994729e+00
   5.76649096e-01   5.76649096e-01   5.76649096e-01   5.76649096e-01
   1.30372839e+00   1.27598949e+00   1.22051168e+00   1.02633937e+00
   8.59905959e-01   1.08181717e+00   8.59905959e-01   1.02633937e+00
   8.04428156e-01   9.98600469e-01   9.98600469e-01   2.49650117e-01
   9.73563408e-01   5.84138045e-01   1.36298877e+00   1.36298877e+00
   1.94712682e-01   9.73563408e-01   7.78850727e-01   7.78850727e-01
   7.78850727e-01   1.94712682e-01   1.17967738e+00   1.83810197e+00
   1.48145532e+00   1.26198045e+00   3.84081008e-01   4.66384081e-01
   8.50465089e-01   8.77899447e-01   6.30990227e-01   3.56646650e-01
   4.38949723e-01   2.19474862e-01   1.08232139e+00   1.05896193e+00
   8.72086298e-01   1.06674842e+00   1.04338896e+00   8.95445752e-01
   8.95445752e-01   8.64299813e-01   9.42164661e-01   1.10568084e+00
   1.14461327e+00   2.49167514e-01   1.55770145e+00   1.42789300e+00
   6.05772787e-01   1.03846764e+00   4.75964333e-01   5.19233818e-01
   6.05772787e-01   3.46155878e-01   1.08173712e+00   2.59616909e-01
   1.33586338e+00   1.21541668e+00   1.13876878e+00   1.02379693e+00
   8.65026286e-01   1.00737238e+00   1.03474663e+00   9.19774785e-01
   8.59551436e-01   9.58098735e-01   1.12234423e+00   2.73742496e-01
   1.18991083e+00   1.36839746e+00   9.22180895e-01   1.13041529e+00
   1.18991083e+00   3.86721020e-01   6.54450958e-01   8.62685353e-01
   6.84198729e-01   3.86721020e-01   4.71083114e+16   1.13059947e+17
   9.42166227e+15   8.78703384e-01   1.86724469e+00   6.59027538e-01
   6.59027538e-01   1.09837923e+00   1.20821715e+00   6.59027538e-01
   9.88541307e-01   7.68865461e-01   7.68865461e-01   8.78703384e-01
   4.39351692e-01   2.72597754e+00   2.72597754e+00   1.28845032e+00
   1.40558217e+00   9.37054780e-01   1.28845032e+00   7.02791085e-01
   1.05418663e+00   5.85659238e-01   7.02791085e-01   1.05418663e+00
   1.28845032e+00   1.28845032e+00   3.51395543e-01]
Test [   5.   13.    5.   11.    4.   10.    9.    9.    7.   18.   13.    4.
   42.   27.   32.   33.   19.   34.   33.   23.   31.   12.   20.   12.
   14.   18.   22.   15.   10.   11.    7.   21.   36.   10.    4.    2.
    2.    4.    3.    2.    2.    3.    1.    1.    1.    1.   40.   29.
   32.   18.   17.   12.   11.   19.   11.   23.   32.   11.   58.   51.
   39.   41.   30.   58.   34.   35.   33.   12.    3.    2.    1.   15.
   11.    7.    5.    7.    6.    3.    8.    4.   10.    6.    1.   37.
   25.   22.   21.   30.   27.   22.   34.   36.   27.   31.   11.   33.
   41.   33.   37.   30.   40.   43.   25.   40.   18.   47.   73.   41.
   52.   45.   78.   49.   55.   54.   62.   50.   32.    2.    2.    2.
    1.    3.    3.  130.  119.   99.  112.   78.  112.  106.   82.  101.
  116.  160.   38.  208.  191.  139.  142.  145.  153.  143.  118.  136.
   71.    1.    2.    1.    1.    1.    2.   14.   19.    9.   51.   43.
   29.   46.   35.   39.   30.   42.   48.   19.   43.    8.  138.  126.
  122.  101.  135.  121.  134.  127.  135.  115.  134.   32.  115.  111.
   87.   81.   88.   72.   91.   78.   91.   39.  108.  122.   87.  115.
   91.  115.   87.   99.   88.  103.  140.   40.   60.   40.   32.   38.
   34.   38.   27.   23.   28.    7.   15.    9.    7.   14.    4.    5.
    5.   13.   10.   19.   38.    8.    6.    4.    6.    4.    6.    3.
    5.    4.    3.   40.   82.   24.  173.  189.  175.  149.  124.  141.
  122.  146.  129.   58.    1.    1.    1.   11.   19.   10.    1.    1.
   26.   28.   27.   24.   27.   35.   34.   33.   26.   61.  105.   27.
  118.  146.  128.  115.  121.  103.  106.  113.  125.   53.   62.   60.
   52.   34.   41.   48.   69.   47.   63.   56.   93.   24.  141.  168.
  133.  115.  117.  105.  112.  100.  125.   43.  318.  299.  291.  251.
  215.  219.  165.  183.  193.  221.  250.   74.  279.  277.  229.  209.
  192.  191.  160.  222.  240.  196.  213.   62.   40.   28.   20.   26.
   23.   18.   18.   22.   31.    5.    3.   11.    2.   15.   32.   12.
  122.  135.  121.  127.  124.  112.  109.  115.  104.   51.  363.  378.
  350.  362.  298.  298.  317.  290.  303.  357.  461.  128.  359.  405.
  369.  394.  314.  282.  317.  289.  338.  141.  459.  462.  352.  402.
  316.  280.  331.  328.  397.  430.  564.  140.  596.  580.  518.  512.
  407.  368.  428.  423.  454.  580.  758.  189.  277.  348.  292.  245.
  193.  163.  195.  228.  262.  115.    1.    1.    1.    4.    3.    3.
    3.   13.    5.   14.   19.    9.   11.    9.    9.   10.   13.   15.
   14.    1.    3.   15.    2.   67.   57.   62.   57.   47.   34.   34.
   24.   44.   15.  287.  285.  227.  235.  176.  236.  227.  213.  205.
  229.  351.   96.  431.  432.  396.  364.  327.  287.  341.  344.  377.
  178.  328.  334.  290.  255.  194.  190.  229.  209.  205.  325.  512.
  159.  235.  285.  255.  220.  188.  171.  195.  199.  200.  292.  489.
  128.  786.  749.  729.  655.  580.  447.  624.  610.  705.  310.  182.
  243.  202.  204.  170.  180.  176.  169.  182.  254.  391.   98.   16.
   13.   12.   15.    5.    9.    4.    8.    5.    2.    3.    3.    3.
    1.    1.    1.    1.   47.   46.   44.   37.   31.   39.   31.   37.
   29.   36.   36.    9.    5.    3.    7.    7.    1.    5.    4.    4.
    4.    1.   43.   67.   54.   46.   14.   17.   31.   32.   23.   13.
   16.    8.  139.  136.  112.  137.  134.  115.  115.  111.  121.  142.
  147.   32.   36.   33.   14.   24.   11.   12.   14.    8.   25.    6.
  244.  222.  208.  187.  158.  184.  189.  168.  157.  175.  205.   50.
   40.   46.   31.   38.   40.   13.   22.   29.   23.   13.   15.   36.
    3.    8.   17.    6.    6.   10.   11.    6.    9.    7.    7.    8.
    4.    1.    1.   11.   12.    8.   11.    6.    9.    5.    6.    9.
   11.   11.    3.]
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-108-31cefc4bdc5f> in <module>()
      1 sys.stdout.flush()
      2 
----> 3 KL_Divergence = averageModel(n, X_region, plot=None, splitMethod='last', testPeriods=12)
      4 print "KL Divergence: {}".format(KL_Divergence)
      5 sys.stdout.flush()

<ipython-input-107-a34469d616dd> in averageModel(n, X_data, normalize, splitMethod, splitRatio, testPeriods, plot)
     81 
     82     # print ((n_test_t - n_preds)**2).sum()
---> 83     assert(len(n_test_t) == 800)
     84     assert(len(n_preds) == 800)
     85     return KL(n_test_t, n_preds)

AssertionError: 

In [ ]:
import sys

# Create the data matrix for Boston
X_data = createDataMatrix(data)

In [ ]:
# Calculate KL for a fixed value of n
# Create the data matrix for Boston
X_data = createDataMatrix(data)

In [47]:
n = 10
print "n = {}".format(n)
# Extracting more efficiently!
%time X_region = extractRegionsFromMatrix(X_data, n)

# Remove the final month
X_region = X_region[:-n**2]

# print X_data.dtype
print "Partitioned data..."


n = 10
Removing empty values from our data!
Rows before: 2660
Rows after: 2163
CPU times: user 7.19 s, sys: 16 ms, total: 7.2 s
Wall time: 7.27 s
Partitioned data...

In [9]:
# testN = range(2,10) + range(10,30,5)
testN = 10
rmses = []
for n in testN:
    print "n = {}".format(n)
    # Extracting more efficiently!
    %time X_region = extractRegionsFromMatrix(X_data, n)
    # Remove the final month
    X_region = X_data[:-n**2]
    # 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='boston', splitMethod='last', testPeriods=12)
    rmses.append((rmse_random, rmse_last))
    print "Last RMSE: {}".format(rmse_last)
    sys.stdout.flush()


n = 2
CPU times: user 408 ms, sys: 0 ns, total: 408 ms
Wall time: 410 ms
Partitioned data...
Training model...
Averages Model:
[ 398.11627907  648.76744186   54.81395349  179.34883721]
Calculating RMSE...
Random RMSE: 0.00442310531153
Training model...
Averages Model:
[ 1188.86046512  1507.90697674   479.81395349  1288.04651163]
Calculating RMSE...
Last RMSE: 0.0064390252893
n = 3
Removing empty values from our data!
Rows before: 342
Rows after: 305
CPU times: user 876 ms, sys: 12 ms, total: 888 ms
Wall time: 1.14 s
Partitioned data...
Training model...
Averages Model:
[  61.58139535   76.48837209   81.69767442   90.20930233  568.39534884
  285.04651163    0.            6.1627907    33.93023256]
Calculating RMSE...
Random RMSE: 0.00103329800133
Training model...
Averages Model:
[  360.8372093    243.6744186    290.02325581   332.69767442  1980.11627907
  1115.51162791     0.            31.76744186   110.        ]
Calculating RMSE...
Last RMSE: 0.00472936968399
n = 4
Removing empty values from our data!
Rows before: 570
Rows after: 525
CPU times: user 1.44 s, sys: 4 ms, total: 1.44 s
Wall time: 1.5 s
Partitioned data...
Training model...
Averages Model:
[  3.90465116e+01   3.37209302e+01   8.59767442e+01   1.44418605e+01
   4.53255814e+01   1.57627907e+02   4.39767442e+02   1.53488372e+00
   2.90697674e+00   1.36860465e+02   1.60325581e+02   1.07302326e+02
   1.16279070e-01   9.30232558e-02   0.00000000e+00   6.37209302e+00]
Calculating RMSE...
Random RMSE: 0.00126719070051
Training model...
Averages Model:
[   94.76744186   142.48837209   270.23255814    41.53488372   183.88372093
   767.72093023  1180.18604651    15.95348837     8.51162791   468.53488372
   714.25581395   536.             0.             2.76744186     0.
    37.79069767]
Calculating RMSE...
Last RMSE: 0.00275655504354
n = 5
Removing empty values from our data!
Rows before: 874
Rows after: 731
CPU times: user 1.72 s, sys: 0 ns, total: 1.72 s
Wall time: 1.85 s
Partitioned data...
Training model...
Averages Model:
[  7.67441860e+00   2.28837209e+01   4.18604651e-01   4.30465116e+01
   6.74418605e-01   2.42558140e+01   8.14186047e+01   4.62790698e+01
   7.39069767e+01   1.39534884e-01   0.00000000e+00   9.22093023e+01
   3.40186047e+02   2.33790698e+02   4.31627907e+01   0.00000000e+00
   6.37209302e+00   1.10000000e+01   2.27441860e+01   6.61860465e+01
   3.72093023e-01   0.00000000e+00   5.34883721e-01   0.00000000e+00
   5.46511628e+00]
Calculating RMSE...
Random RMSE: 0.000996306013154
Training model...
Averages Model:
[  3.39302326e+01   1.08302326e+02   2.02325581e+00   2.18790698e+02
   9.76744186e-01   1.36604651e+02   2.48186047e+02   3.00697674e+02
   2.86209302e+02   6.51162791e-01   0.00000000e+00   5.09581395e+02
   9.67534884e+02   1.11695349e+03   1.45581395e+02   0.00000000e+00
   2.74418605e+01   3.01162791e+01   1.16558140e+02   1.98674419e+02
   0.00000000e+00   0.00000000e+00   2.76744186e+00   0.00000000e+00
   1.30465116e+01]
Calculating RMSE...
Last RMSE: 0.00223695118141
n = 6
Removing empty values from our data!
Rows before: 1178
Rows after: 946
CPU times: user 2.98 s, sys: 4 ms, total: 2.98 s
Wall time: 3.12 s
Partitioned data...
Training model...
Averages Model:
[  4.32558140e+00   7.90697674e+00   4.58139535e+00   1.16744186e+01
   3.33488372e+01   2.09302326e-01   2.99534884e+01   4.67441860e+01
   4.68372093e+01   9.93023256e+00   2.45581395e+01   4.18604651e-01
   1.16279070e-01   3.74883721e+01   1.06255814e+02   5.98139535e+01
   1.12790698e+02   2.34883721e+00   0.00000000e+00   3.00697674e+01
   1.60720930e+02   1.40162791e+02   1.82534884e+02   6.10232558e+01
   1.39534884e-01   0.00000000e+00   0.00000000e+00   5.09302326e+00
   5.41860465e+00   3.14418605e+01   0.00000000e+00   0.00000000e+00
   3.95348837e-01   0.00000000e+00   0.00000000e+00   4.18604651e-01]
Calculating RMSE...
Random RMSE: 0.00102967806395
Training model...
Averages Model:
[  14.81395349   78.65116279   16.79069767   40.65116279  115.86046512
    0.          108.30232558  159.06976744  118.34883721   67.88372093
  174.1627907     0.            0.          246.          446.88372093
  732.58139535  366.86046512    9.90697674    0.           86.69767442
  390.34883721  410.30232558  572.62790698  166.11627907    0.            0.
    0.           29.           11.34883721   96.69767442    0.            0.
    2.76744186    0.            0.            1.95348837]
Calculating RMSE...
Last RMSE: 0.0016554198703
n = 7
Removing empty values from our data!
Rows before: 1330
Rows after: 1152
CPU times: user 3.74 s, sys: 0 ns, total: 3.74 s
Wall time: 3.74 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   9.48837209e+00   1.29302326e+01   2.32558140e-02
   2.17209302e+01   1.40930233e+01   0.00000000e+00   2.33953488e+01
   2.86976744e+01   4.84883721e+01   2.79069767e+00   1.77209302e+01
   4.85813953e+01   0.00000000e+00   1.65116279e+00   2.72325581e+01
   3.42790698e+01   7.13720930e+01   8.58139535e+01   1.55813953e+00
   0.00000000e+00   0.00000000e+00   7.48837209e+00   8.04651163e+01
   1.19302326e+02   1.18441860e+02   8.23953488e+01   2.12325581e+01
   0.00000000e+00   2.32558140e-02   2.23720930e+01   2.12325581e+01
   7.58604651e+01   3.28372093e+01   3.41860465e+01   7.20930233e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.55813953e-01
   2.32558140e-02   8.30232558e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   6.74418605e-01]
Calculating RMSE...
Random RMSE: 0.000474403741132
Training model...
Averages Model:
[  0.00000000e+00   4.66976744e+01   4.43488372e+01   0.00000000e+00
   7.59069767e+01   4.52790698e+01   0.00000000e+00   6.48372093e+01
   1.07813953e+02   1.03000000e+02   1.07441860e+01   7.12093023e+01
   1.36534884e+02   0.00000000e+00   7.25581395e+00   1.28325581e+02
   1.61860465e+02   2.99604651e+02   3.10953488e+02   1.09534884e+01
   0.00000000e+00   0.00000000e+00   4.97209302e+01   4.43604651e+02
   5.60046512e+02   6.02186047e+02   4.59976744e+02   7.33720930e+01
   0.00000000e+00   7.20930233e-01   6.38604651e+01   5.38139535e+01
   2.03162791e+02   1.63883721e+02   1.14953488e+02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.11627907e+00
   1.62790698e-01   4.59534884e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.76744186e+00]
Calculating RMSE...
Last RMSE: 0.00132385604738
n = 8
Removing empty values from our data!
Rows before: 1748
Rows after: 1484
CPU times: user 4.79 s, sys: 8 ms, total: 4.8 s
Wall time: 4.86 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   9.46511628e+00   9.48837209e+00   6.97674419e-01
   2.55813953e-01   3.24651163e+01   3.00000000e+00   0.00000000e+00
   9.30232558e+00   9.27906977e+00   1.02093023e+01   2.48837209e+00
   1.62790698e-01   6.15813953e+01   7.74418605e+00   0.00000000e+00
   6.95348837e+00   3.14883721e+01   1.65813953e+01   3.42325581e+01
   2.95116279e+01   2.16511628e+01   7.44186047e-01   0.00000000e+00
   2.55813953e-01   3.76744186e+00   1.11581395e+02   3.78139535e+01
   9.76511628e+01   6.16046512e+01   1.02325581e+00   2.34883721e+00
   2.32558140e-02   2.34883721e+00   5.00697674e+01   7.17209302e+01
   5.41860465e+01   1.15720930e+02   8.00232558e+01   2.16976744e+01
   0.00000000e+00   0.00000000e+00   2.34883721e+00   0.00000000e+00
   1.40697674e+01   8.93023256e+00   2.40697674e+01   2.00930233e+01
   5.58139535e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   8.62790698e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   3.72093023e-01]
Calculating RMSE...
Random RMSE: 0.000511330456819
Training model...
Averages Model:
[  0.00000000e+00   2.45813953e+01   4.05813953e+01   4.09302326e+00
   6.04651163e-01   7.60465116e+01   6.65116279e+00   0.00000000e+00
   3.33255814e+01   3.68604651e+01   8.72790698e+01   1.05348837e+01
   6.97674419e-02   1.93511628e+02   3.48837209e+01   0.00000000e+00
   2.26279070e+01   1.16883721e+02   8.82558140e+01   1.02720930e+02
   1.83720930e+02   8.19534884e+01   2.76744186e+00   0.00000000e+00
   0.00000000e+00   4.43720930e+01   2.59581395e+02   3.17162791e+02
   4.35930233e+02   4.78581395e+02   3.27906977e+00   9.90697674e+00
   0.00000000e+00   8.51162791e+00   1.52930233e+02   3.08790698e+02
   2.54395349e+02   3.65976744e+02   3.04581395e+02   5.72325581e+01
   0.00000000e+00   0.00000000e+00   6.81395349e+00   0.00000000e+00
   5.32093023e+01   4.06744186e+01   9.13255814e+01   8.28604651e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   3.77906977e+01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.76744186e+00]
Calculating RMSE...
Last RMSE: 0.000975385468124
n = 9
Removing empty values from our data!
Rows before: 2052
Rows after: 1740
CPU times: user 5.83 s, sys: 124 ms, total: 5.96 s
Wall time: 7.6 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   4.46511628e+00   1.16046512e+01   1.95348837e+00
   0.00000000e+00   3.46511628e+00   1.28139535e+01   0.00000000e+00
   0.00000000e+00   4.72093023e+00   4.53488372e+00   1.74651163e+01
   3.67441860e+00   2.09302326e-01   9.44186047e+00   2.56279070e+01
   3.23255814e+00   0.00000000e+00   7.86046512e+00   2.99069767e+01
   1.89534884e+01   2.40930233e+01   1.64418605e+01   8.83720930e+00
   7.65116279e+00   1.04651163e+00   0.00000000e+00   0.00000000e+00
   5.60465116e+00   2.42325581e+01   2.78372093e+01   7.68139535e+01
   9.64883721e+01   5.09534884e+01   0.00000000e+00   0.00000000e+00
   2.55813953e-01   0.00000000e+00   2.98604651e+01   1.22372093e+02
   6.30232558e+01   1.18744186e+02   7.07674419e+01   3.12325581e+01
   9.72093023e+00   0.00000000e+00   0.00000000e+00   3.00000000e+00
   2.06046512e+01   2.31860465e+01   5.83953488e+01   1.74883721e+01
   4.15348837e+01   1.10930233e+01   9.30232558e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   7.44186047e+00
   3.95348837e-01   1.10697674e+01   1.02093023e+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   6.76744186e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   7.44186047e-01]
Calculating RMSE...
Random RMSE: 0.000451841379195
Training model...
Averages Model:
[   0.           15.60465116   32.60465116    9.93023256    0.
   11.11627907   44.11627907    0.            0.           16.13953488
   24.30232558   59.13953488   19.30232558    0.51162791   30.34883721
  179.09302326    9.86046512    0.           27.06976744  100.62790698
   85.34883721   70.02325581   64.93023256   37.51162791   52.69767442
    4.25581395    0.            0.           30.6744186   152.48837209
   95.93023256  243.58139535  268.25581395  166.            0.            0.
    0.            0.          123.79069767  328.55813953  344.20930233
  331.13953488  478.74418605  109.93023256   28.53488372    0.            0.
   25.74418605   87.25581395   92.72093023  188.46511628  140.27906977
  158.69767442   33.3255814     0.            0.            0.            0.
    0.           29.            1.60465116   35.02325581   48.02325581
    0.            0.            0.            0.            0.            0.
    0.            0.           25.34883721    0.            0.            0.
    0.            2.76744186]
Calculating RMSE...
Last RMSE: 0.00084576420254
n = 10
Removing empty values from our data!
Rows before: 2660
Rows after: 2163
CPU times: user 7.15 s, sys: 0 ns, total: 7.15 s
Wall time: 7.23 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   3.11627907e+00   7.48837209e+00   4.30232558e+00
   5.34883721e-01   0.00000000e+00   4.13953488e+00   5.83720930e+00
   0.00000000e+00   0.00000000e+00   1.93023256e+00   5.97674419e+00
   7.44186047e+00   1.62790698e+01   1.86046512e-01   0.00000000e+00
   1.94186047e+01   2.37441860e+01   3.02325581e-01   0.00000000e+00
   6.51162791e+00   2.74186047e+01   8.02325581e+00   1.74418605e+01
   7.74418605e+00   2.06976744e+00   2.88372093e+00   3.95581395e+01
   5.81395349e-01   0.00000000e+00   4.65116279e-02   5.81395349e+00
   3.02790698e+01   5.11627907e+00   6.23255814e+00   6.22558140e+01
   4.44186047e+00   2.79069767e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.97906977e+01   4.00697674e+01
   2.91860465e+01   7.61860465e+01   6.50465116e+01   5.08372093e+01
   2.32558140e-01   1.44186047e+00   0.00000000e+00   0.00000000e+00
   1.02325581e+01   3.87441860e+01   2.82790698e+01   4.89767442e+01
   3.33953488e+01   1.23511628e+02   5.98837209e+01   1.65116279e+00
   0.00000000e+00   0.00000000e+00   3.02325581e-01   1.12558140e+01
   1.06976744e+00   8.00000000e+00   2.02325581e+01   2.93023256e+00
   3.22325581e+01   2.93023256e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.51162791e+00   2.32558140e-02   1.79069767e+00   6.41860465e+00
   4.41860465e-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   1.32558140e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   8.83720930e-01]
Calculating RMSE...
Random RMSE: 0.000360794739925
Training model...
Averages Model:
[  0.00000000e+00   7.34883721e+00   2.70930233e+01   1.22558140e+01
   1.25581395e+00   0.00000000e+00   1.50697674e+01   2.99767442e+01
   0.00000000e+00   0.00000000e+00   5.62790698e+00   2.09534884e+01
   2.70465116e+01   4.19069767e+01   7.67441860e-01   0.00000000e+00
   7.16976744e+01   1.02046512e+02   9.76744186e-01   0.00000000e+00
   3.00465116e+01   8.51860465e+01   6.01860465e+01   7.71395349e+01
   3.06976744e+01   6.44186047e+00   2.58139535e+00   1.07325581e+02
   6.51162791e-01   0.00000000e+00   5.11627907e-01   2.08604651e+01
   7.80000000e+01   3.28604651e+01   8.43953488e+01   1.79162791e+02
   1.56279070e+02   2.00232558e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.40465116e+01   2.31534884e+02
   2.39139535e+02   2.81000000e+02   3.48627907e+02   1.76139535e+02
   4.65116279e-01   9.44186047e+00   0.00000000e+00   0.00000000e+00
   3.14418605e+01   1.72558140e+02   2.41906977e+02   2.05488372e+02
   1.63697674e+02   4.28488372e+02   1.27697674e+02   7.97674419e+00
   0.00000000e+00   0.00000000e+00   1.20930233e+00   2.62325581e+01
   3.69767442e+00   2.64186047e+01   9.27906977e+01   1.69534884e+01
   1.33046512e+02   2.43720930e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.53488372e+00   2.79069767e-01   6.20930233e+00   3.50465116e+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.30465116e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.76744186e+00]
Calculating RMSE...
Last RMSE: 0.000742720107963
n = 15
Removing empty values from our data!
Rows before: 4902
Rows after: 4046
CPU times: user 12.1 s, sys: 20 ms, total: 12.1 s
Wall time: 12.2 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   4.18604651e-01   2.30232558e+00
   3.74418605e+00   1.37209302e+00   3.72093023e-01   2.32558140e-02
   0.00000000e+00   4.88372093e-01   2.88372093e+00   4.18604651e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.90697674e+00   1.34883721e+00   8.39534884e+00
   1.83720930e+00   2.32558140e-02   0.00000000e+00   0.00000000e+00
   4.90697674e+00   1.90232558e+01   2.69767442e+00   1.62790698e-01
   0.00000000e+00   0.00000000e+00   1.41860465e+00   1.13953488e+00
   2.53488372e+00   3.67441860e+00   4.20930233e+00   1.39534884e+00
   1.39534884e-01   0.00000000e+00   0.00000000e+00   4.25581395e+00
   2.48372093e+01   1.13488372e+01   3.72093023e-01   0.00000000e+00
   0.00000000e+00   3.83720930e+00   5.00000000e+00   8.11627907e+00
   3.72093023e+00   1.75348837e+01   2.51162791e+00   1.16279070e+00
   3.25581395e-01   4.65116279e-02   0.00000000e+00   1.15581395e+01
   1.35581395e+01   1.16279070e-01   0.00000000e+00   0.00000000e+00
   2.79069767e-01   8.60465116e+00   1.08837209e+01   1.24418605e+01
   9.37209302e+00   6.20930233e+00   5.25581395e+00   5.41860465e+00
   7.79069767e+00   6.46511628e+00   1.86046512e+00   6.04651163e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.76744186e+00   1.44883721e+01   8.00000000e+00
   2.86046512e+00   3.48837209e+00   1.77441860e+01   1.80930233e+01
   2.10930233e+01   1.48604651e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.32558140e-02   0.00000000e+00
   0.00000000e+00   1.93023256e+00   4.27906977e+01   1.13720930e+01
   2.80232558e+01   4.30465116e+01   3.44883721e+01   2.45348837e+01
   3.79069767e+01   6.74418605e-01   0.00000000e+00   1.13953488e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.25581395e+00   1.33255814e+01   2.33953488e+01   2.90000000e+01
   4.33488372e+01   1.38604651e+01   3.52790698e+01   7.08604651e+01
   1.70930233e+01   1.72093023e+00   8.97674419e+00   1.86046512e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.09302326e-01
   1.29534884e+01   1.59534884e+01   2.60465116e+01   4.10465116e+01
   2.90465116e+01   1.32325581e+01   3.48604651e+01   2.58139535e+01
   1.20697674e+01   1.48837209e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.04651163e+00
   3.06976744e+00   8.60465116e-01   4.95348837e+00   2.74418605e+00
   2.27209302e+01   3.48837209e+00   9.76744186e-01   2.00465116e+01
   4.55813953e+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.30232558e-02   3.67441860e+00
   9.06976744e-01   2.32558140e-02   3.72093023e+00   8.60465116e+00
   0.00000000e+00   8.37209302e-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.65116279e-02   2.44186047e+00   3.90697674e+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.32558140e-02   1.06976744e+00   2.25581395e+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   8.83720930e-01]
Calculating RMSE...
Random RMSE: 0.000191854082425
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   9.30232558e-01   8.74418605e+00
   1.01162791e+01   2.88372093e+00   1.02325581e+00   0.00000000e+00
   0.00000000e+00   1.60465116e+00   1.46511628e+01   3.32558140e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.52325581e+01   8.44186047e+00   1.93023256e+01
   9.62790698e+00   2.32558140e-01   0.00000000e+00   0.00000000e+00
   2.53255814e+01   4.41860465e+01   1.49534884e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   4.18604651e+00   3.60465116e+00
   9.97674419e+00   1.22558140e+01   2.78604651e+01   9.06976744e+00
   7.67441860e-01   0.00000000e+00   0.00000000e+00   1.45348837e+01
   6.59302326e+01   3.42790698e+01   9.76744186e-01   0.00000000e+00
   0.00000000e+00   1.46046512e+01   2.33720930e+01   3.72558140e+01
   1.06744186e+01   3.80232558e+01   2.32790698e+01   4.83720930e+00
   2.65116279e+00   7.20930233e-01   0.00000000e+00   5.77209302e+01
   3.98372093e+01   6.27906977e-01   0.00000000e+00   0.00000000e+00
   5.34883721e-01   1.62558140e+01   3.42790698e+01   3.24651163e+01
   3.27209302e+01   2.38372093e+01   3.69534884e+01   3.67441860e+01
   2.54186047e+01   2.41627907e+01   1.17674419e+01   1.74418605e+00
   2.32558140e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.03023256e+01   5.11395349e+01   2.99534884e+01
   6.09302326e+00   9.93023256e+00   9.88837209e+01   8.45581395e+01
   7.57441860e+01   7.52325581e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.89767442e+01   1.02976744e+02   8.22558140e+01
   9.58837209e+01   1.07069767e+02   1.58860465e+02   1.19000000e+02
   1.72000000e+02   1.72093023e+00   0.00000000e+00   2.76744186e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.31395349e+01   5.65813953e+01   1.07116279e+02   1.22744186e+02
   1.18906977e+02   8.05813953e+01   1.57488372e+02   2.05906977e+02
   6.79302326e+01   7.18604651e+00   2.85581395e+01   1.25581395e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.30232558e+00
   2.83488372e+01   8.88837209e+01   9.02558140e+01   9.83255814e+01
   9.49069767e+01   7.11395349e+01   9.71627907e+01   2.24604651e+02
   6.36046512e+01   4.22093023e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   9.97674419e+00
   1.74651163e+01   2.18604651e+00   1.63720930e+01   1.00930233e+01
   6.53720930e+01   1.84186047e+01   3.37209302e+00   5.55116279e+01
   4.80697674e+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.46511628e+00   2.75348837e+01
   1.58139535e+00   2.55813953e-01   1.74651163e+01   4.88139535e+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
   2.32558140e-02   0.00000000e+00   1.15116279e+01   1.73023256e+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   4.20930233e+00   8.83720930e+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.76744186e+00]
Calculating RMSE...
Last RMSE: 0.00048063019958
n = 20
Removing empty values from our data!
Rows before: 7866
Rows after: 6331
CPU times: user 23 s, sys: 36 ms, total: 23.1 s
Wall time: 23.7 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   0.00000000e+00   6.97674419e-02
   1.18604651e+00   1.06976744e+00   8.60465116e-01   2.09302326e-01
   2.32558140e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.95348837e-01   2.93023256e+00   4.65116279e-02
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   9.30232558e-02   1.41860465e+00
   3.72093023e-01   3.00000000e+00   1.51162791e+00   4.88372093e-01
   1.16279070e-01   0.00000000e+00   2.32558140e-02   0.00000000e+00
   1.86046512e-01   6.93023256e+00   4.67441860e+00   4.65116279e-01
   4.65116279e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   2.44186047e+00
   2.88372093e+00   1.23255814e+00   6.06976744e+00   1.20930233e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   3.88372093e+00   5.58139535e+00   9.16279070e+00   1.23255814e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   4.18604651e-01   1.11627907e+00   1.06976744e+00   2.55813953e-01
   1.13953488e+00   4.30232558e+00   4.27906977e+00   7.90697674e-01
   2.79069767e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.97674419e-02   5.95348837e+00   1.56046512e+01   1.67441860e+00
   2.55813953e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.55813953e+00   3.18604651e+00   4.02325581e+00   9.53488372e-01
   9.76744186e-01   3.55813953e+00   7.55813953e+00   1.34883721e+00
   1.02325581e+00   8.37209302e-01   2.32558140e-02   0.00000000e+00
   0.00000000e+00   1.13953488e+00   1.46279070e+01   4.11627907e+00
   1.16279070e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.62790698e-01   2.41860465e+00   1.26279070e+01   1.03023256e+01
   3.11627907e+00   6.02325581e+00   8.60465116e+00   5.79069767e+00
   3.74418605e+00   4.53488372e+00   2.72093023e+00   6.97674419e-02
   0.00000000e+00   3.72093023e-01   5.00000000e+00   7.20930233e-01
   2.32558140e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.16279070e-01   4.65116279e-01   4.18604651e+00
   5.39534884e+00   1.04651163e+00   3.88372093e+00   6.51162791e-01
   2.79069767e+00   4.41860465e+00   9.46511628e+00   5.86046512e+00
   8.04651163e+00   1.06976744e+00   4.88372093e-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   1.02325581e+00
   9.39534884e+00   4.25581395e+00   1.02093023e+01   6.04651163e-01
   4.88372093e-01   9.41860465e+00   1.16976744e+01   1.09069767e+01
   1.27441860e+01   1.63953488e+01   4.39534884e+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.09302326e-01
   2.72093023e+00   8.41860465e+00   2.06511628e+01   1.31627907e+01
   1.20232558e+01   1.96976744e+01   1.52093023e+01   1.45581395e+01
   1.25813953e+01   2.37906977e+01   8.79069767e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   4.65116279e-02   0.00000000e+00   0.00000000e+00   1.39534884e-01
   2.00000000e+00   5.90697674e+00   8.39534884e+00   2.16511628e+01
   1.71395349e+01   1.88139535e+01   7.32558140e+00   1.52093023e+01
   3.68372093e+01   2.85813953e+01   1.68139535e+01   6.74418605e-01
   0.00000000e+00   1.86046512e-01   2.04651163e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.51162791e+00   3.90697674e+00   1.87674419e+01   1.46976744e+01
   2.74883721e+01   9.86046512e+00   1.26046512e+01   1.65348837e+01
   6.97674419e+00   1.98837209e+01   3.29534884e+01   3.91627907e+01
   6.58139535e+00   8.95348837e+00   2.04651163e+00   2.55813953e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   5.81395349e-01   3.86046512e+00   1.93255814e+01
   7.76744186e+00   1.30465116e+01   1.29534884e+01   1.32093023e+01
   6.97674419e+00   1.64418605e+01   1.63488372e+01   3.70930233e+01
   1.08604651e+01   9.06976744e+00   2.55813953e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.02325581e-01   2.34883721e+00   5.76744186e+00
   3.72093023e-01   2.55813953e-01   2.69767442e+00   1.44186047e+00
   1.83720930e+00   3.04651163e+00   2.79069767e+00   1.86046512e-01
   5.65116279e+00   1.12325581e+01   2.83720930e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   6.97674419e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   6.97674419e-02   4.88372093e-01
   7.69767442e+00   1.44186047e+00   3.72093023e-01   0.00000000e+00
   1.47906977e+01   1.60000000e+01   3.90697674e+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.67441860e-01   2.79069767e-01   0.00000000e+00   2.32558140e-02
   0.00000000e+00   1.72093023e+00   3.58139535e+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.32558140e-02   0.00000000e+00   3.32558140e+00   1.46511628e+00
   6.74418605e-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   1.88372093e+00   1.20930233e+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.32558140e-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   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   8.83720930e-01]
Calculating RMSE...
Random RMSE: 0.000119340132476
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   0.00000000e+00   6.97674419e-02
   4.90697674e+00   6.79069767e+00   2.09302326e+00   9.30232558e-01
   9.30232558e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.18604651e+00   8.09302326e+00   2.09302326e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   3.25581395e-01   6.95348837e+00
   4.55813953e+00   1.08372093e+01   5.41860465e+00   3.81395349e+00
   1.16279070e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.37209302e-01   1.30465116e+01   1.98837209e+01   1.79069767e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.32558140e-02   1.39302326e+01
   6.23255814e+00   3.41860465e+00   2.17209302e+01   4.90697674e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.58837209e+01   2.24418605e+01   3.83953488e+01   7.39534884e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.62790698e+00   4.00000000e+00   6.34883721e+00   6.51162791e-01
   2.93023256e+00   1.44651163e+01   1.07441860e+01   4.53488372e+00
   7.67441860e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.32558140e-01   3.31395349e+01   4.25813953e+01   1.36744186e+01
   9.76744186e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   7.69767442e+00   9.83720930e+00   1.50465116e+01   5.11627907e+00
   4.51162791e+00   1.36279070e+01   2.60930233e+01   5.02325581e+00
   4.00000000e+00   2.04651163e+00   6.97674419e-02   0.00000000e+00
   0.00000000e+00   2.58139535e+00   7.18604651e+01   1.69302326e+01
   5.58139535e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.79069767e-01   1.22325581e+01   3.71860465e+01   2.78372093e+01
   1.52790698e+01   2.67674419e+01   2.12093023e+01   2.48139535e+01
   1.04418605e+01   1.42093023e+01   5.72093023e+00   6.51162791e-01
   0.00000000e+00   0.00000000e+00   1.58604651e+01   2.67441860e+00
   9.30232558e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   5.11627907e-01   1.90697674e+00   1.11627907e+01
   1.48139535e+01   4.06976744e+00   1.10465116e+01   1.97674419e+00
   2.15581395e+01   3.07441860e+01   3.91395349e+01   2.62790698e+01
   4.44883721e+01   6.65116279e+00   2.74418605e+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.79069767e+00
   3.53720930e+01   2.37441860e+01   1.75348837e+01   2.30232558e+00
   1.58139535e+00   3.05116279e+01   7.03023256e+01   4.34418605e+01
   4.86046512e+01   5.65348837e+01   1.72790698e+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.06046512e+01   2.96976744e+01   7.36046512e+01   4.91627907e+01
   3.83023256e+01   6.85813953e+01   5.03953488e+01   9.97906977e+01
   5.26976744e+01   7.50465116e+01   5.80000000e+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
   8.90697674e+00   2.48372093e+01   3.88604651e+01   6.99069767e+01
   6.88139535e+01   6.34418605e+01   7.06046512e+01   6.02093023e+01
   1.28558140e+02   9.23255814e+01   1.14860465e+02   3.27906977e+00
   0.00000000e+00   4.65116279e-01   9.44186047e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.51162791e+00   1.91395349e+01   5.03255814e+01   4.84186047e+01
   8.36744186e+01   7.13488372e+01   6.50000000e+01   4.73488372e+01
   2.21627907e+01   6.50697674e+01   1.49209302e+02   9.16279070e+01
   2.78372093e+01   3.43023256e+01   5.58139535e+00   1.09302326e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.79069767e+00   2.38139535e+01   5.00000000e+01
   4.49534884e+01   4.19302326e+01   3.92093023e+01   5.39302326e+01
   4.11627907e+01   3.53023256e+01   5.36744186e+01   1.33976744e+02
   3.17209302e+01   3.38372093e+01   1.30232558e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.20930233e+00   1.29767442e+01   1.30697674e+01
   1.62790698e+00   2.06976744e+00   1.80697674e+01   4.93023256e+00
   5.03720930e+01   5.06976744e+00   1.42093023e+01   5.11627907e-01
   2.25813953e+01   2.24651163e+01   1.01162791e+01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.86046512e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.44186047e-01   2.67441860e+00
   3.33255814e+01   4.02325581e+00   2.23255814e+00   0.00000000e+00
   3.17906977e+01   5.62093023e+01   1.42558140e+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
   6.46511628e+00   6.97674419e-02   0.00000000e+00   2.79069767e-01
   1.39534884e-01   6.06976744e+00   1.03023256e+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   1.53720930e+01   9.37209302e+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.27906977e+00   5.60465116e+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.16279070e-01   4.65116279e-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
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.76744186e+00]
Calculating RMSE...
Last RMSE: 0.000388265505045
n = 25
Removing empty values from our data!
Rows before: 11362
Rows after: 9108
CPU times: user 34 s, sys: 8 ms, total: 34 s
Wall time: 34.1 s
Partitioned data...
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.97674419e-02   1.62790698e-01   2.32558140e-01   1.76744186e+00
   1.62790698e-01   4.65116279e-02   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   2.32558140e-02   4.18604651e-01   1.04651163e+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   5.34883721e-01   9.53488372e-01   2.09302326e+00
   6.97674419e-01   3.02325581e-01   3.25581395e-01   4.18604651e-01
   0.00000000e+00   2.32558140e-02   0.00000000e+00   0.00000000e+00
   2.32558140e-02   3.48837209e-01   3.09302326e+00   1.25581395e+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.51162791e-01   2.60465116e+00   2.79069767e-01
   1.04651163e+00   1.62790698e+00   1.13953488e+00   1.93023256e+00
   4.65116279e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   6.97674419e-02   3.16279070e+00   2.44186047e+00
   2.39534884e+00   3.72093023e-01   1.16279070e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.32558140e-02   1.13953488e+00   2.32558140e+00
   1.16279070e+00   1.00000000e+00   7.67441860e-01   3.81395349e+00
   6.27906977e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.58139535e+00   3.53488372e+00
   3.58139535e+00   4.60465116e+00   7.90697674e-01   9.30232558e-02
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   3.72093023e-01   1.11627907e+00   8.83720930e-01   1.13953488e+00
   0.00000000e+00   0.00000000e+00   4.16279070e+00   1.09302326e+00
   2.74418605e+00   9.76744186e-01   6.97674419e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   4.60465116e+00   7.44186047e+00   4.16279070e+00   2.74418605e+00
   1.86046512e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.11627907e+00   1.44186047e+00   2.20930233e+00
   1.27906977e+00   3.02325581e-01   8.13953488e-01   1.16279070e+00
   2.79069767e+00   1.44186047e+00   6.51162791e-01   3.02325581e-01
   5.81395349e-01   9.30232558e-02   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   7.72093023e+00   1.31162791e+01
   1.67441860e+00   3.25581395e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   3.48837209e-01   2.23255814e+00
   3.65116279e+00   7.00000000e+00   7.27906977e+00   2.16279070e+00
   1.41860465e+00   2.41860465e+00   7.95348837e+00   3.27906977e+00
   5.11627907e-01   5.81395349e-01   5.81395349e-01   3.25581395e-01
   0.00000000e+00   0.00000000e+00   2.79069767e-01   2.32558140e-02
   2.48837209e+00   7.44186047e-01   1.16279070e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.65116279e-02
   4.41860465e-01   1.46511628e+00   1.13953488e+00   3.79069767e+00
   2.27906977e+00   2.69767442e+00   3.00000000e+00   2.83720930e+00
   2.16279070e+00   5.97674419e+00   3.18604651e+00   4.34883721e+00
   4.00000000e+00   3.72093023e-01   4.65116279e-01   6.97674419e-02
   2.32558140e-01   4.41860465e-01   3.72093023e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.32558140e-02   0.00000000e+00
   2.53488372e+00   1.62790698e+00   1.93023256e+00   1.39534884e-01
   1.44186047e+00   2.32558140e-02   9.53488372e-01   7.79069767e+00
   5.83720930e+00   1.00697674e+01   4.30232558e+00   8.86046512e+00
   6.32558140e+00   1.65116279e+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.09302326e+00   4.58139535e+00   2.67441860e+00
   3.23255814e+00   1.72093023e+00   4.65116279e-01   0.00000000e+00
   9.30232558e-01   2.26511628e+01   1.43953488e+01   1.09302326e+01
   5.53488372e+00   3.74418605e+00   1.56744186e+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   9.30232558e-02   2.72093023e+00
   1.58139535e+00   2.01860465e+01   1.11860465e+01   3.34883721e+00
   3.46511628e+00   9.60465116e+00   1.09767442e+01   1.04883721e+01
   1.41860465e+01   9.93023256e+00   9.09302326e+00   2.63023256e+01
   1.09302326e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   4.65116279e-02
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.83720930e-01   1.74418605e+00   1.09534884e+01   6.97674419e+00
   1.50000000e+01   1.19767442e+01   1.02093023e+01   1.72093023e+01
   1.56976744e+01   1.82790698e+01   1.81860465e+01   1.14883721e+01
   2.12558140e+01   3.48837209e+00   0.00000000e+00   6.97674419e-02
   0.00000000e+00   1.09302326e+00   3.02325581e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   8.13953488e-01   6.48837209e+00   4.67441860e+00
   8.69767442e+00   5.27906977e+00   1.14418605e+01   1.30930233e+01
   3.55813953e+00   1.28604651e+01   4.04651163e+00   1.18372093e+01
   2.39534884e+00   6.83720930e+00   1.42093023e+01   5.79069767e+00
   2.32558140e+00   9.30232558e-02   2.48837209e+00   3.95348837e-01
   2.79069767e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.32558140e-02   1.09302326e+00
   4.02325581e+00   1.11395349e+01   8.25581395e+00   1.94651163e+01
   2.72093023e+01   1.71627907e+01   6.97674419e+00   1.23255814e+01
   2.09302326e-01   8.02325581e+00   1.04186047e+01   3.22558140e+01
   1.76744186e+01   8.46511628e+00   5.23255814e+00   7.34883721e+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.16279070e+00   3.83720930e+00   7.20930233e+00
   3.93023256e+00   3.90697674e+00   7.53488372e+00   5.44186047e+00
   3.62790698e+00   6.97674419e+00   6.62790698e+00   1.67441860e+00
   1.11627907e+01   2.85813953e+01   1.30232558e+01   3.04651163e+00
   3.46511628e+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.37209302e-01   2.41860465e+00
   9.53488372e-01   3.72093023e-01   3.48837209e-01   4.18604651e-01
   2.16279070e+00   1.65116279e+00   8.27906977e+00   2.32558140e+00
   1.90697674e+00   1.02325581e+00   1.86046512e-01   1.53488372e+00
   1.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.79069767e-01   1.16279070e-01   0.00000000e+00   0.00000000e+00
   2.79069767e-01   1.62790698e+00   9.53488372e-01   4.86046512e+00
   2.25581395e+00   6.51162791e-01   0.00000000e+00   0.00000000e+00
   1.00000000e+00   9.97674419e+00   1.25348837e+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   1.39534884e-01
   3.00000000e+00   8.13953488e-01   2.55813953e-01   0.00000000e+00
   6.97674419e-02   9.53488372e-01   9.53488372e-01   5.53488372e+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
   2.34883721e+00   7.67441860e-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   9.30232558e-02   4.55813953e+00   2.13953488e+00
   2.32558140e-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   4.65116279e-02   2.62790698e+00
   5.34883721e-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   1.16279070e-01
   1.39534884e-01   9.30232558e-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   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   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
   5.34883721e-01]
Calculating RMSE...
Random RMSE: 9.94828861391e-05
Training model...
Averages Model:
[  0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.13953488e+00   1.23255814e+00   5.06976744e+00
   6.97674419e-01   1.39534884e-01   9.30232558e-02   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.39534884e+00   3.72093023e+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.74418605e+00   4.25581395e+00   6.65116279e+00
   3.11627907e+00   3.39534884e+00   1.72093023e+00   9.30232558e-01
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.97674419e-02   2.65116279e+00   1.10000000e+01   8.02325581e+00
   1.39534884e-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   3.20930233e+00   7.93023256e+00   7.44186047e-01
   2.55813953e+00   7.90697674e+00   6.79069767e+00   3.79069767e+00
   2.32558140e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   5.34883721e-01   1.63953488e+01   1.70465116e+01
   9.39534884e+00   1.09302326e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   1.16279070e-01   4.32558140e+00   6.53488372e+00
   6.25581395e+00   3.18604651e+00   2.32558140e+00   1.47209302e+01
   2.09302326e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   8.13953488e+00   1.80930233e+01
   2.37906977e+01   1.78139535e+01   3.27906977e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   8.60465116e-01   4.06976744e+00   1.97674419e+00   3.16279070e+00
   0.00000000e+00   0.00000000e+00   1.20697674e+01   5.83720930e+00
   7.60465116e+00   3.00000000e+00   7.67441860e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.11860465e+01   3.24651163e+01   2.22790698e+01   1.02790698e+01
   9.76744186e-01   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   5.58139535e+00   5.51162791e+00   7.81395349e+00
   6.51162791e+00   1.27906977e+00   2.86046512e+00   6.58139535e+00
   1.28837209e+01   1.49069767e+01   3.58139535e+00   1.02325581e+00
   1.65116279e+00   3.95348837e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   2.58139535e+01   4.44418605e+01
   1.26046512e+01   2.79069767e-01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   1.86046512e+00   6.62790698e+00
   1.12325581e+01   3.71860465e+01   1.25116279e+01   1.10930233e+01
   1.01627907e+01   1.54186047e+01   1.84883721e+01   1.12558140e+01
   2.48837209e+00   3.34883721e+00   1.69767442e+00   1.09302326e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   1.16279070e-01
   2.00000000e+01   3.65116279e+00   3.72093023e-01   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   1.18604651e+00   6.46511628e+00   5.04651163e+00   1.22790698e+01
   7.62790698e+00   7.88372093e+00   1.45116279e+01   6.39534884e+00
   8.67441860e+00   1.69534884e+01   1.73720930e+01   1.66279070e+01
   1.31162791e+01   6.83720930e+00   4.74418605e+00   1.62790698e-01
   9.53488372e-01   1.74418605e+00   1.11627907e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   6.97674419e-02   0.00000000e+00
   1.10697674e+01   9.27906977e+00   6.95348837e+00   3.48837209e-01
   3.88372093e+00   2.32558140e-01   6.23255814e+00   2.41395349e+01
   1.77674419e+01   3.48372093e+01   2.08837209e+01   4.09069767e+01
   1.46976744e+01   8.72093023e+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.37209302e+00   2.96976744e+01   1.87441860e+01
   1.80232558e+01   6.62790698e+00   2.06976744e+00   0.00000000e+00
   3.48837209e+00   5.10000000e+01   3.08139535e+01   2.89302326e+01
   3.98604651e+01   2.20000000e+01   4.46744186e+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   7.53488372e+00
   1.07906977e+01   5.47209302e+01   3.79069767e+01   3.15813953e+01
   1.84651163e+01   3.49069767e+01   2.83488372e+01   3.19767442e+01
   6.80465116e+01   3.02558140e+01   3.50465116e+01   6.03023256e+01
   4.97674419e+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.83720930e+00   1.06046512e+01   2.56279070e+01   2.34186047e+01
   3.79302326e+01   4.22790698e+01   5.64883721e+01   4.65813953e+01
   4.66744186e+01   6.07209302e+01   6.96976744e+01   6.12790698e+01
   1.00813953e+02   1.90930233e+01   0.00000000e+00   0.00000000e+00
   0.00000000e+00   3.83720930e+00   1.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   2.62790698e+00   1.81860465e+01   2.21395349e+01
   3.65581395e+01   3.55581395e+01   4.39069767e+01   3.81627907e+01
   3.58604651e+01   3.67674419e+01   2.38604651e+01   6.80697674e+01
   5.95348837e+01   5.60930233e+01   4.90000000e+01   2.99767442e+01
   2.37209302e+00   2.30232558e+00   1.20465116e+01   2.16279070e+00
   1.09302326e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00
   0.00000000e+00   0.00000000e+00   4.18604651e-01   3.62790698e+00
   1.65813953e+01   3.35116279e+01   4.69534884e+01   6.13255814e+01
   5.96511628e+01   4.33720930e+01   3.03023256e+01   3.48837209e+01
   7.44186047e-01   2.11860465e+01   4.05348837e+01   1.48186047e+02
   7.08139535e+01   2.81860465e+01   1.91162791e+01   2.23953488e+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.08604651e+01   1.58837209e+01   2.17209302e+01
   1.55813953e+01   1.51162791e+01   2.80465116e+01   2.13720930e+01
   4.48372093e+01   3.04883721e+01   4.48372093e+01   5.69767442e+00
   3.89302326e+01   7.13953488e+01   2.70697674e+01   7.79069767e+00
   1.62093023e+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   4.13953488e+00   1.10465116e+01
   9.81395349e+00   1.62790698e+00   1.39534884e+00   1.41860465e+00
   1.27209302e+01   4.30232558e+00   3.96744186e+01   7.23255814e+00
   9.53488372e+00   6.30232558e+00   5.11627907e-01   4.46511628e+00
   4.11627907e+00   2.32558140e-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
   2.23255814e+00   2.09302326e-01   0.00000000e+00   0.00000000e+00
   1.11627907e+00   4.37209302e+00   2.86046512e+00   2.65348837e+01
   4.41860465e+00   5.41860465e+00   0.00000000e+00   0.00000000e+00
   2.65581395e+01   5.47209302e+01   4.27674419e+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   3.02325581e-01
   1.37209302e+01   2.06976744e+00   8.60465116e-01   0.00000000e+00
   2.55813953e-01   4.55813953e+00   3.83720930e+00   2.58604651e+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
   2.32558140e-02   0.00000000e+00   0.00000000e+00   0.00000000e+00
   6.81395349e+00   4.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   9.76744186e-01   1.19767442e+01   8.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   5.58139535e-01   9.53488372e+00
   2.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.79069767e-01
   4.65116279e-01   2.09302326e-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   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   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.76744186e+00]
Calculating RMSE...
Last RMSE: 0.000316188798053
/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  if self._edgecolors == str('face'):

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

In [ ]: