Skip to content

Instantly share code, notes, and snippets.

@dbwodlf3
Last active September 17, 2020 18:16
Show Gist options
  • Select an option

  • Save dbwodlf3/3381753efb1afaf954a4800fc3cdd972 to your computer and use it in GitHub Desktop.

Select an option

Save dbwodlf3/3381753efb1afaf954a4800fc3cdd972 to your computer and use it in GitHub Desktop.
Random forest Example
#!/usr/bin/python3
"""Random Forest Examples. 2020-09-17. Author: Yu JaeIL
This example follows https://towardsdatascience.com/random-forest-in-python-24d0893d51c0
These codes are written and test in python 3.7.7.
References,
decision tree: https://www.youtube.com/watch?v=n0p0120Gxqk&t=5s
randorm forest: https://www.youtube.com/watch?v=nZB37IBCiSA
One-Hot-Encode: https://en.wikipedia.org/wiki/One-hot
Baseline: https://developers.google.com/machine-learning/glossary#baseline
"""
"""Weather data for Seattle.
data fileds
1. year: 2016 for all data points.
2. month: number for month of the year.
3. day : number for day of the year.
4. week : day of the week as a character string.
5. temp_2: max temperature 2 days prior.
6. temp_1: max temperature 1 day prior.
7. average: historical average max temperature.
8. actual: max temperature measurement.
9. friend: friend's prediction, a random number between 20 below the average and 20 above the average.
"""
from pprint import pprint
import pandas as pd
import numpy as np
features = pd.read_csv('temps.csv')
print(features.head(5))
""" The output
year month day week temp_2 temp_1 average actual forecast_noaa forecast_acc forecast_under friend
0 2016 1 1 Fri 45 45 45.6 45 43 50 44 29
1 2016 1 2 Sat 44 45 45.7 44 41 50 44 61
2 2016 1 3 Sun 45 44 45.8 41 43 46 47 56
3 2016 1 4 Mon 44 41 45.9 40 44 48 46 53
4 2016 1 5 Tues 41 40 46.0 44 46 46 46 41
"""
print('The shape of our features is:', features.shape)
""" The output
The shape of our features is: (348, 12)
"""
# One-hot encode the data using pandas get_dummies
# I think pd.get_dummies function enum field make one-hots.
features = pd.get_dummies(features)
# Display the first 5 rows of the last 13 columns
print(features.iloc[:,5:].head(5))
"""The output
average actual forecast_noaa forecast_acc forecast_under friend week_Fri week_Mon week_Sat week_Sun week_Thurs week_Tues week_Wed
0 45.6 45 43 50 44 29 1 0 0 0 0 0 0
1 45.7 44 41 50 44 61 0 0 1 0 0 0 0
2 45.8 41 43 46 47 56 0 0 0 1 0 0 0
3 45.9 40 44 48 46 53 0 1 0 0 0 0 0
4 46.0 44 46 46 46 41 0 0 0 0 0 1 0
"""
# Labels are the values we want to predict.(Answer)
labels = np.array(features['actual'])
# Remove the labels from the features
# axis 1 refers to the columns (it means axis 1 is column or 0 is row.)
features = features.drop('actual', axis = 1)
# Saving feature names for later use
feature_list = list(features.columns)
# Convert to numpy array
features = np.array(features)
# Using Skicit-learn to split data into training and testing sets
from sklearn.model_selection import train_test_split
# Split the data into training and testing sets
train_features, test_features, train_labels, test_labels = \
train_test_split(features, labels, test_size = 0.25, random_state = 42)
print('%-25s' % 'Training Features Shape:', train_features.shape)
print('%-25s' % 'Training Labels Shape:', train_labels.shape)
print('%-25s' % 'Testing Features Shape:', test_features.shape)
print('%-25s' % 'Testing Labels Shape:', test_labels.shape)
"""Output
Training Features Shape: (261, 17)
Training Labels Shape: (261,)
Testing Features Shape: (87, 17)
Testing Labels Shape: (87,)
"""
# The baseline predications are the historical averages
baseline_preds = test_features[:, feature_list.index('average')]
# Baseline errors, and display average baseline error
baseline_errors = abs(baseline_preds - test_labels)
print('Average baseline error: ', round(np.mean(baseline_errors), 2))
"""The Output
Average baseline error: 5.06
"""
# Import the model we are using
from sklearn.ensemble import RandomForestRegressor
# Instantiate model with 1000 decision trees
rf = RandomForestRegressor(n_estimators = 1000, random_state = 42)
# Train the model on training data
rf.fit(train_features, train_labels)
# Use the forest's predict method on the test data
predictions = rf.predict(test_features)
# Calculate the absolute erros
erros = abs(predictions - test_labels)
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', round(np.mean(erros), 2), 'degrees.')
"""The Output
Mean Absolute Error: 3.87 degrees.
"""
"""My Understanding How Randomforest can be appied to Machine Learning.
1. First make Data to Sclable Data. like these examples, weeks were changed
7 features and have data 1 or 0 by one-hot-encoding.)
2. Make decision trees. and per condition on trees is logical operation having
features as operand. (like, n-feature > weight)
3. And training weights. that is all. I think.
"""
year month day week temp_2 temp_1 average actual forecast_noaa forecast_acc forecast_under friend
2016 1 1 Fri 45 45 45.6 45 43 50 44 29
2016 1 2 Sat 44 45 45.7 44 41 50 44 61
2016 1 3 Sun 45 44 45.8 41 43 46 47 56
2016 1 4 Mon 44 41 45.9 40 44 48 46 53
2016 1 5 Tues 41 40 46 44 46 46 46 41
2016 1 6 Wed 40 44 46.1 51 43 49 48 40
2016 1 7 Thurs 44 51 46.2 45 45 49 46 38
2016 1 8 Fri 51 45 46.3 48 43 47 46 34
2016 1 9 Sat 45 48 46.4 50 46 50 45 47
2016 1 10 Sun 48 50 46.5 52 45 48 48 49
2016 1 11 Mon 50 52 46.7 45 42 48 48 39
2016 1 12 Tues 52 45 46.8 49 44 50 45 61
2016 1 13 Wed 45 49 46.9 55 45 51 46 33
2016 1 14 Thurs 49 55 47 49 43 47 46 58
2016 1 15 Fri 55 49 47.1 48 46 51 46 65
2016 1 16 Sat 49 48 47.3 54 45 52 46 28
2016 1 17 Sun 48 54 47.4 50 45 51 46 47
2016 1 18 Mon 54 50 47.5 54 44 48 49 58
2016 1 19 Tues 50 54 47.6 48 47 49 48 53
2016 1 20 Wed 54 48 47.7 52 44 52 49 61
2016 1 21 Thurs 48 52 47.8 52 43 51 46 57
2016 1 22 Fri 52 52 47.9 57 47 48 48 60
2016 1 23 Sat 52 57 48 48 45 49 50 37
2016 1 24 Sun 57 48 48.1 51 46 50 48 54
2016 1 25 Mon 48 51 48.2 54 45 51 49 63
2016 1 26 Tues 51 54 48.3 56 44 53 50 61
2016 1 27 Wed 54 56 48.4 57 45 51 49 54
2016 1 28 Thurs 56 57 48.4 56 44 52 48 34
2016 1 29 Fri 57 56 48.5 52 48 52 47 49
2016 1 30 Sat 56 52 48.6 48 45 51 48 47
2016 1 31 Sun 52 48 48.7 47 47 52 49 61
2016 2 1 Mon 48 47 48.8 46 46 49 49 51
2016 2 2 Tues 47 46 48.8 51 48 50 50 56
2016 2 3 Wed 46 51 48.9 49 48 49 50 40
2016 2 4 Thurs 51 49 49 49 44 54 51 44
2016 2 5 Fri 49 49 49.1 53 47 50 49 45
2016 2 6 Sat 49 53 49.1 49 47 53 49 56
2016 2 7 Sun 53 49 49.2 51 46 51 48 63
2016 2 8 Mon 49 51 49.3 57 49 52 50 34
2016 2 9 Tues 51 57 49.4 62 45 52 49 57
2016 2 10 Wed 57 62 49.4 56 48 50 49 30
2016 2 11 Thurs 62 56 49.5 55 46 53 50 37
2016 2 12 Fri 56 55 49.6 58 49 52 48 33
2016 2 15 Mon 55 58 49.9 55 46 52 49 53
2016 2 16 Tues 58 55 49.9 56 47 54 51 55
2016 2 17 Wed 55 56 50 57 45 51 49 46
2016 2 18 Thurs 56 57 50.1 53 47 55 49 34
2016 2 19 Fri 57 53 50.2 51 50 52 51 42
2016 2 20 Sat 53 51 50.4 53 48 55 51 43
2016 2 21 Sun 51 53 50.5 51 49 54 52 46
2016 2 22 Mon 53 51 50.6 51 46 51 50 59
2016 2 23 Tues 51 51 50.7 60 49 53 51 43
2016 2 24 Wed 51 60 50.8 59 47 53 50 46
2016 2 25 Thurs 60 59 50.9 61 49 51 49 35
2016 2 26 Fri 59 61 51.1 60 48 56 53 65
2016 2 27 Sat 61 60 51.2 57 51 53 53 61
2016 2 28 Sun 60 57 51.3 53 48 56 53 66
2016 3 1 Tues 53 54 51.5 58 48 56 50 53
2016 3 2 Wed 54 58 51.6 55 47 54 52 37
2016 3 3 Thurs 58 55 51.8 59 49 54 50 71
2016 3 4 Fri 55 59 51.9 57 47 56 53 45
2016 3 5 Sat 59 57 52.1 64 49 53 51 46
2016 3 6 Sun 57 64 52.2 60 52 53 51 49
2016 3 7 Mon 64 60 52.4 53 49 57 53 71
2016 3 8 Tues 60 53 52.5 54 48 56 51 70
2016 3 9 Wed 53 54 52.7 55 48 56 54 57
2016 3 10 Thurs 54 55 52.8 56 49 55 53 50
2016 3 11 Fri 55 56 53 55 53 53 51 36
2016 3 12 Sat 56 55 53.1 52 52 58 53 65
2016 3 13 Sun 55 52 53.3 54 50 55 53 54
2016 3 14 Mon 52 54 53.4 49 49 58 55 44
2016 3 15 Tues 54 49 53.6 51 49 58 52 70
2016 3 16 Wed 49 51 53.7 53 52 54 55 65
2016 3 17 Thurs 51 53 53.9 58 49 58 52 62
2016 3 18 Fri 53 58 54 63 51 57 54 56
2016 3 19 Sat 58 63 54.2 61 54 59 54 62
2016 3 20 Sun 63 61 54.3 55 51 56 55 50
2016 3 21 Mon 61 55 54.5 56 52 56 55 52
2016 3 22 Tues 55 56 54.6 57 51 55 54 64
2016 3 23 Wed 56 57 54.7 53 50 58 55 70
2016 3 24 Thurs 57 53 54.9 54 54 56 56 72
2016 3 25 Fri 53 54 55 57 53 57 57 42
2016 3 26 Sat 54 57 55.2 59 53 57 55 54
2016 3 27 Sun 57 59 55.3 51 52 58 55 39
2016 3 28 Mon 59 51 55.5 56 55 57 55 47
2016 3 29 Tues 51 56 55.6 64 53 59 54 45
2016 3 30 Wed 56 64 55.7 68 51 57 56 57
2016 3 31 Thurs 64 68 55.9 73 55 59 56 56
2016 4 1 Fri 68 73 56 71 54 59 55 41
2016 4 2 Sat 73 71 56.2 63 55 58 58 45
2016 4 3 Sun 71 63 56.3 69 54 61 56 64
2016 4 4 Mon 63 69 56.5 60 54 59 56 45
2016 4 5 Tues 69 60 56.6 57 52 58 56 72
2016 4 6 Wed 60 57 56.8 68 53 59 57 64
2016 4 7 Thurs 57 68 56.9 77 52 61 55 38
2016 4 8 Fri 68 77 57.1 76 57 61 57 41
2016 4 9 Sat 77 76 57.2 66 53 61 57 74
2016 4 10 Sun 76 66 57.4 59 57 60 57 60
2016 4 11 Mon 66 59 57.6 58 56 60 58 40
2016 4 12 Tues 59 58 57.7 60 54 59 57 61
2016 4 13 Wed 58 60 57.9 59 55 62 56 77
2016 4 14 Thurs 60 59 58.1 59 57 63 58 66
2016 4 15 Fri 59 59 58.3 60 58 61 60 40
2016 4 16 Sat 59 60 58.5 68 56 60 59 59
2016 4 17 Sun 60 68 58.6 77 58 62 59 54
2016 4 18 Mon 68 77 58.8 89 55 59 57 39
2016 4 19 Tues 77 89 59 81 59 63 59 61
2016 4 20 Wed 89 81 59.2 81 56 63 61 66
2016 4 21 Thurs 81 81 59.4 73 55 61 59 55
2016 4 22 Fri 81 73 59.7 64 59 64 60 59
2016 4 23 Sat 73 64 59.9 65 56 63 59 57
2016 4 24 Sun 64 65 60.1 55 57 61 60 41
2016 4 25 Mon 65 55 60.3 59 56 64 61 77
2016 4 26 Tues 55 59 60.5 60 56 61 62 75
2016 4 27 Wed 59 60 60.7 61 59 65 60 50
2016 4 28 Thurs 60 61 61 64 56 65 62 73
2016 4 29 Fri 61 64 61.2 61 61 65 61 49
2016 4 30 Sat 64 61 61.4 68 60 65 62 78
2016 5 1 Sun 61 68 61.6 77 60 65 60 75
2016 5 2 Mon 68 77 61.9 87 60 66 61 59
2016 5 3 Tues 77 87 62.1 74 62 66 64 69
2016 5 4 Wed 87 74 62.3 60 59 65 64 61
2016 5 5 Thurs 74 60 62.5 68 58 66 62 56
2016 5 6 Fri 60 68 62.8 77 61 64 61 64
2016 5 7 Sat 68 77 63 82 61 65 63 83
2016 5 8 Sun 77 82 63.2 63 62 65 63 83
2016 5 9 Mon 82 63 63.4 67 59 66 62 64
2016 5 10 Tues 63 67 63.6 75 61 66 64 68
2016 5 11 Wed 67 75 63.8 81 62 68 63 60
2016 5 12 Thurs 75 81 64.1 77 62 67 63 81
2016 5 13 Fri 81 77 64.3 82 63 67 66 67
2016 5 14 Sat 77 82 64.5 65 64 66 66 65
2016 5 15 Sun 82 65 64.7 57 63 69 64 58
2016 5 16 Mon 65 57 64.8 60 61 65 65 53
2016 5 17 Tues 57 60 65 71 62 65 65 55
2016 5 18 Wed 60 71 65.2 64 61 68 65 56
2016 5 19 Thurs 71 64 65.4 63 62 68 67 56
2016 5 20 Fri 64 63 65.6 66 63 70 64 73
2016 5 21 Sat 63 66 65.7 59 62 67 65 49
2016 5 22 Sun 66 59 65.9 66 62 66 65 80
2016 5 23 Mon 59 66 66.1 65 63 68 68 66
2016 5 24 Tues 66 65 66.2 66 66 71 66 67
2016 5 25 Wed 65 66 66.4 66 65 67 66 60
2016 5 26 Thurs 66 66 66.5 65 64 70 65 85
2016 5 27 Fri 66 65 66.7 64 64 67 68 73
2016 5 28 Sat 65 64 66.8 64 64 69 65 64
2016 5 29 Sun 64 64 67 64 65 71 65 76
2016 5 30 Mon 64 64 67.1 71 64 70 66 69
2016 5 31 Tues 64 71 67.3 79 63 72 68 85
2016 6 1 Wed 71 79 67.4 75 65 69 66 58
2016 6 2 Thurs 79 75 67.6 71 64 71 67 77
2016 6 3 Fri 75 71 67.7 80 64 71 66 55
2016 6 4 Sat 71 80 67.9 81 63 72 66 76
2016 6 5 Sun 80 81 68 92 64 70 66 54
2016 6 6 Mon 81 92 68.2 86 65 70 67 71
2016 6 7 Tues 92 86 68.3 85 67 69 70 58
2016 6 8 Wed 86 85 68.5 67 67 70 69 81
2016 6 9 Thurs 85 67 68.6 65 66 73 69 80
2016 6 10 Fri 67 65 68.8 67 67 71 67 73
2016 6 11 Sat 65 67 69 65 69 72 71 87
2016 6 12 Sun 67 65 69.1 70 65 73 70 83
2016 6 13 Mon 65 70 69.3 66 66 72 69 79
2016 6 14 Tues 70 66 69.5 60 66 71 69 85
2016 6 15 Wed 66 60 69.7 67 65 73 71 69
2016 6 16 Thurs 60 67 69.8 71 68 72 71 87
2016 6 17 Fri 67 71 70 67 66 74 69 54
2016 6 18 Sat 71 67 70.2 65 67 75 69 77
2016 6 19 Sun 67 65 70.4 70 69 73 70 58
2016 6 20 Mon 65 70 70.6 76 67 71 70 79
2016 6 21 Tues 70 76 70.8 73 68 75 71 57
2016 6 22 Wed 76 73 71 75 66 71 72 78
2016 6 23 Thurs 73 75 71.3 68 68 72 71 56
2016 6 24 Fri 75 68 71.5 69 67 73 73 65
2016 6 25 Sat 68 69 71.7 71 68 73 73 89
2016 6 26 Sun 69 71 71.9 78 67 74 72 70
2016 6 27 Mon 71 78 72.2 85 70 74 72 84
2016 6 28 Tues 78 85 72.4 79 72 76 74 67
2016 6 29 Wed 85 79 72.6 74 68 76 74 81
2016 6 30 Thurs 79 74 72.8 73 71 76 72 87
2016 7 1 Fri 74 73 73.1 76 71 75 72 93
2016 7 2 Sat 73 76 73.3 76 70 77 73 84
2016 7 3 Sun 76 76 73.5 71 69 76 75 85
2016 7 4 Mon 76 71 73.8 68 71 76 73 86
2016 7 5 Tues 71 68 74 69 72 77 74 62
2016 7 6 Wed 68 69 74.2 76 72 76 75 86
2016 7 7 Thurs 69 76 74.4 68 73 77 74 72
2016 7 8 Fri 76 68 74.6 74 72 79 75 77
2016 7 9 Sat 68 74 74.9 71 70 79 76 60
2016 7 10 Sun 74 71 75.1 74 71 77 76 95
2016 7 11 Mon 71 74 75.3 74 74 79 75 71
2016 7 12 Tues 74 74 75.4 77 74 77 77 71
2016 7 13 Wed 74 77 75.6 75 74 78 76 56
2016 7 14 Thurs 77 75 75.8 77 74 76 77 77
2016 7 15 Fri 75 77 76 76 74 80 78 75
2016 7 16 Sat 77 76 76.1 72 76 78 75 61
2016 7 17 Sun 76 72 76.3 80 76 78 77 88
2016 7 18 Mon 72 80 76.4 73 75 77 75 66
2016 7 19 Tues 80 73 76.6 78 76 78 77 90
2016 7 20 Wed 73 78 76.7 82 75 78 77 66
2016 7 21 Thurs 78 82 76.8 81 73 81 78 84
2016 7 22 Fri 82 81 76.9 71 72 77 76 70
2016 7 23 Sat 81 71 77 75 75 81 76 86
2016 7 24 Sun 71 75 77.1 80 76 78 78 75
2016 7 25 Mon 75 80 77.1 85 75 82 76 81
2016 7 26 Tues 80 85 77.2 79 73 79 76 74
2016 7 27 Wed 85 79 77.3 83 73 78 79 79
2016 7 28 Thurs 79 83 77.3 85 76 80 78 76
2016 7 29 Fri 83 85 77.3 88 77 80 79 77
2016 7 30 Sat 85 88 77.3 76 75 79 77 70
2016 7 31 Sun 88 76 77.4 73 76 78 79 95
2016 8 1 Mon 76 73 77.4 77 76 78 79 65
2016 8 2 Tues 73 77 77.4 73 75 80 79 62
2016 8 3 Wed 77 73 77.3 75 77 81 77 93
2016 8 4 Thurs 73 75 77.3 80 73 79 78 66
2016 8 5 Fri 75 80 77.3 79 75 81 78 71
2016 8 6 Sat 80 79 77.2 72 76 81 79 60
2016 8 7 Sun 79 72 77.2 72 74 78 77 95
2016 8 8 Mon 72 72 77.1 73 76 78 77 65
2016 8 9 Tues 72 73 77.1 72 77 80 79 94
2016 8 10 Wed 73 72 77 76 77 78 77 68
2016 8 11 Thurs 72 76 76.9 80 74 81 75 80
2016 8 12 Fri 76 80 76.9 87 72 79 77 81
2016 8 13 Sat 80 87 76.8 90 73 79 78 73
2016 8 14 Sun 87 90 76.7 83 75 78 78 65
2016 8 15 Mon 90 83 76.6 84 76 79 75 70
2016 8 16 Tues 83 84 76.5 81 72 78 78 90
2016 8 23 Tues 84 81 75.7 79 73 78 77 89
2016 8 28 Sun 81 79 75 75 71 77 76 85
2016 8 30 Tues 79 75 74.6 70 74 76 75 63
2016 9 3 Sat 75 70 73.9 67 71 75 73 68
2016 9 4 Sun 70 67 73.7 68 72 77 75 64
2016 9 5 Mon 67 68 73.5 68 71 75 73 54
2016 9 6 Tues 68 68 73.3 68 73 76 75 79
2016 9 7 Wed 68 68 73 67 72 78 71 70
2016 9 8 Thurs 68 67 72.8 72 69 77 73 56
2016 9 9 Fri 67 72 72.6 74 68 77 71 78
2016 9 10 Sat 72 74 72.3 77 70 77 74 91
2016 9 11 Sun 74 77 72.1 70 69 75 71 70
2016 9 12 Mon 77 70 71.8 74 67 73 73 90
2016 9 13 Tues 70 74 71.5 75 71 75 70 82
2016 9 14 Wed 74 75 71.2 79 67 75 73 77
2016 9 15 Thurs 75 79 71 71 66 76 69 64
2016 9 16 Fri 79 71 70.7 75 70 74 71 52
2016 9 17 Sat 71 75 70.3 68 66 73 70 84
2016 9 18 Sun 75 68 70 69 66 73 71 90
2016 9 19 Mon 68 69 69.7 71 65 74 71 88
2016 9 20 Tues 69 71 69.4 67 67 73 69 81
2016 9 21 Wed 71 67 69 68 65 70 70 76
2016 9 22 Thurs 67 68 68.7 67 65 70 69 56
2016 9 23 Fri 68 67 68.3 64 67 69 67 61
2016 9 24 Sat 67 64 68 67 65 71 66 64
2016 9 25 Sun 64 67 67.6 76 64 72 67 62
2016 9 26 Mon 67 76 67.2 77 64 69 69 74
2016 9 27 Tues 76 77 66.8 69 66 67 68 64
2016 9 28 Wed 77 69 66.5 68 66 68 66 62
2016 9 29 Thurs 69 68 66.1 66 63 71 68 57
2016 9 30 Fri 68 66 65.7 67 64 67 65 74
2016 10 1 Sat 66 67 65.3 63 64 70 64 54
2016 10 2 Sun 67 63 64.9 65 62 69 66 82
2016 10 3 Mon 63 65 64.5 61 63 68 65 49
2016 10 4 Tues 65 61 64.1 63 62 69 65 60
2016 10 5 Wed 61 63 63.7 66 61 66 65 48
2016 10 6 Thurs 63 66 63.3 63 62 67 63 55
2016 10 7 Fri 66 63 62.9 64 62 67 64 78
2016 10 8 Sat 63 64 62.5 68 60 65 61 73
2016 10 9 Sun 64 68 62.1 57 58 65 63 55
2016 10 10 Mon 68 57 61.8 60 58 64 61 62
2016 10 11 Tues 57 60 61.4 62 58 66 61 58
2016 10 12 Wed 60 62 61 66 60 63 63 52
2016 10 13 Thurs 62 66 60.6 60 60 62 60 57
2016 10 14 Fri 66 60 60.2 60 56 64 60 78
2016 10 15 Sat 60 60 59.9 62 59 62 59 46
2016 10 16 Sun 60 62 59.5 60 57 60 59 40
2016 10 17 Mon 62 60 59.1 60 57 63 59 62
2016 10 18 Tues 60 60 58.8 61 54 60 57 53
2016 10 19 Wed 60 61 58.4 58 58 60 57 41
2016 10 20 Thurs 61 58 58.1 62 58 59 58 43
2016 10 21 Fri 58 62 57.8 59 56 60 59 44
2016 10 22 Sat 62 59 57.4 62 56 59 58 44
2016 10 23 Sun 59 62 57.1 62 57 58 59 67
2016 10 24 Mon 62 62 56.8 61 52 61 57 70
2016 10 25 Tues 62 61 56.5 65 53 60 55 70
2016 10 26 Wed 61 65 56.2 58 53 57 57 41
2016 10 27 Thurs 65 58 55.9 60 51 60 55 39
2016 10 28 Fri 58 60 55.6 65 52 56 55 52
2016 10 29 Sat 60 65 55.3 68 55 59 55 65
2016 10 31 Mon 65 117 54.8 59 51 59 56 62
2016 11 1 Tues 117 59 54.5 57 51 59 55 61
2016 11 2 Wed 59 57 54.2 57 54 58 55 70
2016 11 3 Thurs 57 57 53.9 65 53 54 54 35
2016 11 4 Fri 57 65 53.7 65 49 55 54 38
2016 11 5 Sat 65 65 53.4 58 49 58 52 41
2016 11 6 Sun 65 58 53.2 61 52 57 55 71
2016 11 7 Mon 58 61 52.9 63 51 56 51 35
2016 11 8 Tues 61 63 52.7 71 49 57 52 49
2016 11 9 Wed 63 71 52.4 65 48 56 52 42
2016 11 10 Thurs 71 65 52.2 64 52 54 51 38
2016 11 11 Fri 65 64 51.9 63 50 53 52 55
2016 11 12 Sat 64 63 51.7 59 50 52 52 63
2016 11 13 Sun 63 59 51.4 55 48 56 50 64
2016 11 14 Mon 59 55 51.2 57 49 53 53 42
2016 11 15 Tues 55 57 51 55 47 54 51 46
2016 11 16 Wed 57 55 50.7 50 50 51 49 34
2016 11 17 Thurs 55 50 50.5 52 46 51 50 57
2016 11 18 Fri 50 52 50.3 55 50 53 50 35
2016 11 19 Sat 52 55 50 57 50 54 49 56
2016 11 20 Sun 55 57 49.8 55 47 54 48 30
2016 11 21 Mon 57 55 49.5 54 46 51 49 67
2016 11 22 Tues 55 54 49.3 54 46 54 49 58
2016 11 23 Wed 54 54 49.1 49 48 52 49 38
2016 11 24 Thurs 54 49 48.9 52 47 53 48 29
2016 11 25 Fri 49 52 48.6 52 45 52 47 41
2016 11 26 Sat 52 52 48.4 53 48 50 47 58
2016 11 27 Sun 52 53 48.2 48 48 49 49 53
2016 11 28 Mon 53 48 48 52 46 48 49 44
2016 11 29 Tues 48 52 47.8 52 43 48 47 50
2016 11 30 Wed 52 52 47.6 52 47 52 49 44
2016 12 1 Thurs 52 52 47.4 46 44 48 49 39
2016 12 2 Fri 52 46 47.2 50 46 51 49 41
2016 12 3 Sat 46 50 47 49 42 52 47 58
2016 12 4 Sun 50 49 46.8 46 45 47 47 53
2016 12 5 Mon 49 46 46.6 40 43 50 45 65
2016 12 6 Tues 46 40 46.4 42 44 50 45 56
2016 12 7 Wed 40 42 46.3 40 44 51 46 62
2016 12 8 Thurs 42 40 46.1 41 45 51 47 36
2016 12 9 Fri 40 41 46 36 43 51 44 54
2016 12 10 Sat 41 36 45.9 44 44 48 44 65
2016 12 11 Sun 36 44 45.7 44 41 46 47 35
2016 12 12 Mon 44 44 45.6 43 43 50 45 42
2016 12 13 Tues 44 43 45.5 40 41 47 46 46
2016 12 14 Wed 43 40 45.4 39 45 48 45 49
2016 12 15 Thurs 40 39 45.3 39 45 49 47 46
2016 12 16 Fri 39 39 45.3 35 44 49 44 39
2016 12 17 Sat 39 35 45.2 35 43 47 46 38
2016 12 18 Sun 35 35 45.2 39 44 46 46 36
2016 12 19 Mon 35 39 45.1 46 42 46 45 51
2016 12 20 Tues 39 46 45.1 51 45 49 45 62
2016 12 21 Wed 46 51 45.1 49 44 50 46 39
2016 12 22 Thurs 51 49 45.1 45 42 47 46 38
2016 12 23 Fri 49 45 45.1 40 45 49 44 35
2016 12 24 Sat 45 40 45.1 41 44 47 46 39
2016 12 25 Sun 40 41 45.1 42 42 49 44 31
2016 12 26 Mon 41 42 45.2 42 45 48 46 58
2016 12 27 Tues 42 42 45.2 47 41 50 47 47
2016 12 28 Wed 42 47 45.3 48 41 49 44 58
2016 12 29 Thurs 47 48 45.3 48 43 50 45 65
2016 12 30 Fri 48 48 45.4 57 44 46 44 42
2016 12 31 Sat 48 57 45.5 40 42 48 47 57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment