From e5cf8a43d4e575e803e6fca185b618adaf890032 Mon Sep 17 00:00:00 2001 From: ltcptgeneral <35508619+ltcptgeneral@users.noreply.github.com> Date: Wed, 20 Feb 2019 22:59:17 -0600 Subject: [PATCH] superscript.py - v 1. changelog: - processes data more efficiently --- .../__pycache__/analysis.cpython-37.pyc | Bin 25075 -> 25209 bytes data analysis/analysis.py | 88 ++++++++++-------- data analysis/data/aSetOfData.csv | 6 +- data analysis/data/bdata.csv | 5 + data analysis/data/data.csv | 6 +- .../keys/titanscoutandroid_firebase.json | 12 +++ data analysis/superscript.py | 63 +++++++++++-- 7 files changed, 134 insertions(+), 46 deletions(-) create mode 100644 data analysis/data/bdata.csv create mode 100644 data analysis/keys/titanscoutandroid_firebase.json diff --git a/data analysis/__pycache__/analysis.cpython-37.pyc b/data analysis/__pycache__/analysis.cpython-37.pyc index 5ac2626d5723fec4a205adc4701ff0bab0d92870..72c9c2ce5a0b8ba9a148daeb11308fc5e0ca6553 100644 GIT binary patch delta 3153 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 hzUaJ@q0z~e#tdUBK1GIR," ) +import firebase_admin +from firebase_admin import credentials +from firebase_admin import firestore import analysis import titanlearn import visualization import os import glob +import numpy as np + +# Use a service account +cred = credentials.Certificate('keys/titanscoutandroid_firebase.json') +firebase_admin.initialize_app(cred) + +db = firestore.client() #get all the data + +analysis.generate_data("data/bdata.csv", 100, 5, -10, 10) + source_dir = 'data' file_list = glob.glob(source_dir + '/*.csv') #supposedly sorts by alphabetical order, skips reading teams.csv because of redundancy data = [] @@ -50,14 +65,50 @@ teams = analysis.load_csv("data/teams.csv") #assumes that team number is in the first column, and that the order of teams is the same across all files #unhelpful comment for measure in data: #unpacks 3d array into 2ds + + measure_stats = [] + for i in range(len(measure)): #unpacks into specific teams + + ofbest_curve = [None] + r2best_curve = [None] + line = measure[i] - line.pop(0) #removes team identifier - measure_stats.append(teams[i] + list(analysis.basic_stats(line, 0, 0))) - stats.append(list(measure_stats)) + + #print(line) + + x = list(range(len(line))) + eqs, rmss, r2s, overfit = analysis.optimize_regression(x, line, 10, 1) + + beqs, brmss, br2s, boverfit = analysis.select_best_regression(eqs, rmss, r2s, overfit, "min_overfit") + + #print(eqs, rmss, r2s, overfit) -print (stats) -# print(d) + ofbest_curve.append(beqs) + ofbest_curve.append(brmss) + ofbest_curve.append(br2s) + ofbest_curve.append(boverfit) + ofbest_curve.pop(0) -#print (stats) + #print(ofbest_curve) + beqs, brmss, br2s, boverfit = analysis.select_best_regression(eqs, rmss, r2s, overfit, "max_r2s") + + r2best_curve.append(beqs) + r2best_curve.append(brmss) + r2best_curve.append(br2s) + r2best_curve.append(boverfit) + r2best_curve.pop(0) + + #print(r2best_curve) + + measure_stats.append(teams[i] + ["|"] + list(analysis.basic_stats(line, 0, 0)) + ["|"] + list(analysis.histo_analysis(line, 1, -3, 3)) + ["|"] + ofbest_curve + ["|"] + r2best_curve) + + stats.append(list(measure_stats)) + +json_out = {} + +for i in range(len(stats)): + json_out[files[i]]=stats[i] + +db.collection(u'stats').document(u'stats-noNN').set(json_out)