analysis pkg v 1.0.0.005

This commit is contained in:
art 2020-03-05 12:44:09 -06:00
parent a0c90bad2c
commit e488b4a4d1
14 changed files with 80 additions and 25 deletions

View File

@ -1,6 +1,6 @@
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: analysis Name: analysis
Version: 1.0.0.4 Version: 1.0.0.5
Summary: analysis package developed by Titan Scouting for The Red Alliance Summary: analysis package developed by Titan Scouting for The Red Alliance
Home-page: https://github.com/titanscout2022/tr2022-strategy Home-page: https://github.com/titanscout2022/tr2022-strategy
Author: The Titan Scouting Team Author: The Titan Scouting Team

View File

@ -7,10 +7,12 @@
# current benchmark of optimization: 1.33 times faster # current benchmark of optimization: 1.33 times faster
# setup: # setup:
__version__ = "1.1.12.006" __version__ = "1.1.13.000"
# changelog should be viewed using print(analysis.__changelog__) # changelog should be viewed using print(analysis.__changelog__)
__changelog__ = """changelog: __changelog__ = """changelog:
1.1.13.000:
- fixed all regressions to now properly work
1.1.12.006: 1.1.12.006:
- fixed bg with a division by zero in histo_analysis - fixed bg with a division by zero in histo_analysis
1.1.12.005: 1.1.12.005:
@ -268,6 +270,8 @@ import numba
from numba import jit from numba import jit
import numpy as np import numpy as np
import math import math
import scipy
from scipy import *
import sklearn import sklearn
from sklearn import * from sklearn import *
import torch import torch
@ -346,24 +350,62 @@ def regression(ndevice, inputs, outputs, args, loss = torch.nn.MSELoss(), _itera
if 'lin' in args: # formula: ax + b if 'lin' in args: # formula: ax + b
model = Regression().SGDTrain(Regression.LinearRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor([outputs]).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) try:
params = model[0].parameters
params[:] = map(lambda x: x.item(), params) X = np.array(inputs).reshape(-1,1)
regressions.append((params, model[1][::-1][0])) y = np.array(outputs)
model = sklearn.linear_model.LinearRegression().fit(X, y)
ret = model.coef_.flatten().tolist()
ret.append(model.intercept_)
regressions.append((ret, model.score(X,y)))
except Exception as e:
print(e)
pass
if 'log' in args: # formula: a log (b(x + c)) + d if 'log' in args: # formula: a log (b(x + c)) + d
model = Regression().SGDTrain(Regression.LogRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) try:
params = model[0].parameters
params[:] = map(lambda x: x.item(), params) X = np.array(inputs)
regressions.append((params, model[1][::-1][0])) y = np.array(outputs)
def func(x, a, b, c, d):
return a * np.log(b*(x + c)) + d
popt, pcov = scipy.optimize.curve_fit(func, X, y)
regressions.append((popt.flatten().tolist(), None))
except Exception as e:
print(e)
pass
if 'exp' in args: # formula: a e ^ (b(x + c)) + d if 'exp' in args: # formula: a e ^ (b(x + c)) + d
model = Regression().SGDTrain(Regression.ExpRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) try:
params = model[0].parameters
params[:] = map(lambda x: x.item(), params) X = np.array(inputs)
regressions.append((params, model[1][::-1][0])) y = np.array(outputs)
def func(x, a, b, c, d):
return a * np.exp(b*(x + c)) + d
popt, pcov = scipy.optimize.curve_fit(func, X, y)
regressions.append((popt.flatten().tolist(), None))
except Exception as e:
print(e)
pass
if 'ply' in args: # formula: a + bx^1 + cx^2 + dx^3 + ... if 'ply' in args: # formula: a + bx^1 + cx^2 + dx^3 + ...
@ -385,12 +427,25 @@ def regression(ndevice, inputs, outputs, args, loss = torch.nn.MSELoss(), _itera
regressions.append(plys) regressions.append(plys)
if 'sig' in args: # formula: a sig (b(x + c)) + d | sig() = 1/(1 + e ^ -x) if 'sig' in args: # formula: a tanh (b(x + c)) + d
model = Regression().SGDTrain(Regression.SigmoidalRegKernelArthur(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) try:
params = model[0].parameters
params[:] = map(lambda x: x.item(), params) X = np.array(inputs)
regressions.append((params, model[1][::-1][0])) y = np.array(outputs)
def func(x, a, b, c, d):
return a * np.tanh(b*(x + c)) + d
popt, pcov = scipy.optimize.curve_fit(func, X, y)
regressions.append((popt.flatten().tolist(), None))
except Exception as e:
print(e)
pass
return regressions return regressions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,7 +2,7 @@ import setuptools
setuptools.setup( setuptools.setup(
name="analysis", # Replace with your own username name="analysis", # Replace with your own username
version="1.0.0.004", version="1.0.0.005",
author="The Titan Scouting Team", author="The Titan Scouting Team",
author_email="titanscout2022@gmail.com", author_email="titanscout2022@gmail.com",
description="analysis package developed by Titan Scouting for The Red Alliance", description="analysis package developed by Titan Scouting for The Red Alliance",

View File

@ -1,6 +1,6 @@
2020ilch 2020ilch
balls-blocked,basic_stats,historical_analysis balls-blocked,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
balls-collected,basic_stats,historical_analysis balls-collected,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
balls-lower,basic_stats,historical_analysis balls-lower,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
balls-started,basic_stats,historical_analysis balls-started,basic_stats,historical_analyss,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
balls-upper,basic_stats,historical_analysis balls-upper,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
1 2020ilch
2 balls-blocked,basic_stats,historical_analysis balls-blocked,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
3 balls-collected,basic_stats,historical_analysis balls-collected,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
4 balls-lower,basic_stats,historical_analysis balls-lower,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
5 balls-started,basic_stats,historical_analysis balls-started,basic_stats,historical_analyss,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal
6 balls-upper,basic_stats,historical_analysis balls-upper,basic_stats,historical_analysis,regression_linear,regression_logarithmic,regression_exponential,regression_polynomial,regression_sigmoidal