From ae4ecbd67cc545f01297304d096275a3ea7b0367 Mon Sep 17 00:00:00 2001 From: art Date: Mon, 23 Dec 2019 12:48:13 -0600 Subject: [PATCH 1/6] analysis.py v 1.1.11.005 --- data analysis/analysis/analysis.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/data analysis/analysis/analysis.py b/data analysis/analysis/analysis.py index 78895973..b7b78ebf 100644 --- a/data analysis/analysis/analysis.py +++ b/data analysis/analysis/analysis.py @@ -7,10 +7,12 @@ # current benchmark of optimization: 1.33 times faster # setup: -__version__ = "1.1.11.004" +__version__ = "1.1.11.005" # changelog should be viewed using print(analysis.__changelog__) __changelog__ = """changelog: + 1.1.11.005: + - added min and max for basic_stats 1.1.11.004: - bug fixes 1.1.11.003: @@ -270,8 +272,10 @@ def basic_stats(data): _median = median(data_t) _stdev = stdev(data_t) _variance = variance(data_t) + _min = npmin(data_t) + _max = npmax() - return _mean, _median, _stdev, _variance + return _mean, _median, _stdev, _variance, _min, _max # returns z score with inputs of point, mean and standard deviation of spread @jit(forceobj=True) @@ -432,6 +436,16 @@ def variance(data): return np.var(data) +@jit(nopython=True) +def npmin(data): + + return np.amin(data) + +@jit(nopython=True) +def npmax(data): + + return np.amax(data) + @jit(forceobj=True) def kmeans(data, n_clusters=8, init="k-means++", n_init=10, max_iter=300, tol=0.0001, precompute_distances="auto", verbose=0, random_state=None, copy_x=True, n_jobs=None, algorithm="auto"): From d5a7f52b8380d292390b20237a87379a0a5b6381 Mon Sep 17 00:00:00 2001 From: art Date: Mon, 23 Dec 2019 12:49:38 -0600 Subject: [PATCH 2/6] spelling --- data analysis/analysis/analysis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data analysis/analysis/analysis.py b/data analysis/analysis/analysis.py index b7b78ebf..4be78f4e 100644 --- a/data analysis/analysis/analysis.py +++ b/data analysis/analysis/analysis.py @@ -12,7 +12,7 @@ __version__ = "1.1.11.005" # changelog should be viewed using print(analysis.__changelog__) __changelog__ = """changelog: 1.1.11.005: - - added min and max for basic_stats + - added min and max in basic_stats 1.1.11.004: - bug fixes 1.1.11.003: From eca8d4efc18ef8af3a967405678cdd9b7f2c37ae Mon Sep 17 00:00:00 2001 From: art Date: Sat, 4 Jan 2020 09:57:06 -0600 Subject: [PATCH 3/6] quick fix --- data analysis/analysis/analysis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data analysis/analysis/analysis.py b/data analysis/analysis/analysis.py index 4be78f4e..224ee03c 100644 --- a/data analysis/analysis/analysis.py +++ b/data analysis/analysis/analysis.py @@ -273,7 +273,7 @@ def basic_stats(data): _stdev = stdev(data_t) _variance = variance(data_t) _min = npmin(data_t) - _max = npmax() + _max = npmax(data_t) return _mean, _median, _stdev, _variance, _min, _max From 96bf376b704f6ecbe62874d109925da8138cf321 Mon Sep 17 00:00:00 2001 From: art Date: Sat, 4 Jan 2020 10:04:20 -0600 Subject: [PATCH 4/6] analysis.py v 1.1.11.006 --- .../__pycache__/analysis.cpython-37.pyc | Bin 29283 -> 32318 bytes data analysis/analysis/analysis.py | 5 ++++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data analysis/analysis/__pycache__/analysis.cpython-37.pyc b/data analysis/analysis/__pycache__/analysis.cpython-37.pyc index 0aed5924c68457e05b19b1da8c3261a849682535..d731ee9f08061e2be0b8459de8830f0d5f00093b 100644 GIT binary patch literal 32318 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 Date: Sat, 4 Jan 2020 10:13:25 -0600 Subject: [PATCH 5/6] analysis.py v 1.1.11.007 --- .gitignore | 2 ++ data analysis/analysis/analysis.py | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index b44c3081..e5e132ff 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.cp37-win_amd64. data analysis/analysis/build/temp.win-amd64-3.7/Release/analysis.obj data analysis/test.ipynb data analysis/.ipynb_checkpoints/test-checkpoint.ipynb +.vscode/settings.json +.vscode diff --git a/data analysis/analysis/analysis.py b/data analysis/analysis/analysis.py index 3a3804c3..23e18282 100644 --- a/data analysis/analysis/analysis.py +++ b/data analysis/analysis/analysis.py @@ -7,10 +7,12 @@ # current benchmark of optimization: 1.33 times faster # setup: -__version__ = "1.1.11.006" +__version__ = "1.1.11.007" # changelog should be viewed using print(analysis.__changelog__) __changelog__ = """changelog: + 1.1.11.007: + - bug fixes 1.1.11.006: - tested min and max - bug fixes @@ -389,9 +391,9 @@ def trueskill(teams_data, observations):#teams_data is array of array of tuples class RegressionMetrics(): - def __new__(self, predictions, targets): + def __new__(cls, predictions, targets): - return self.r_squared(self, predictions, targets), self.mse(self, predictions, targets), self.rms(self, predictions, targets) + return cls.r_squared(cls, predictions, targets), cls.mse(cls, predictions, targets), cls.rms(cls, predictions, targets) def r_squared(self, predictions, targets): # assumes equal size inputs @@ -407,9 +409,9 @@ class RegressionMetrics(): class ClassificationMetrics(): - def __new__(self, predictions, targets): + def __new__(cls, predictions, targets): - return self.cm(self, predictions, targets), self.cr(self, predictions, targets) + return cls.cm(cls, predictions, targets), cls.cr(cls, predictions, targets) def cm(self, predictions, targets): @@ -538,13 +540,13 @@ class SVM: class CustomKernel: - def __new__(self, C, kernel, degre, gamma, coef0, shrinking, probability, tol, cache_size, class_weight, verbose, max_iter, decision_function_shape, random_state): + def __new__(cls, C, kernel, degre, gamma, coef0, shrinking, probability, tol, cache_size, class_weight, verbose, max_iter, decision_function_shape, random_state): return sklearn.svm.SVC(C = C, kernel = kernel, gamma = gamma, coef0 = coef0, shrinking = shrinking, probability = probability, tol = tol, cache_size = cache_size, class_weight = class_weight, verbose = verbose, max_iter = max_iter, decision_function_shape = decision_function_shape, random_state = random_state) class StandardKernel: - def __new__(self, kernel, C=1.0, degree=3, gamma='auto_deprecated', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', random_state=None): + def __new__(cls, kernel, C=1.0, degree=3, gamma='auto_deprecated', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', random_state=None): return sklearn.svm.SVC(C = C, kernel = kernel, gamma = gamma, coef0 = coef0, shrinking = shrinking, probability = probability, tol = tol, cache_size = cache_size, class_weight = class_weight, verbose = verbose, max_iter = max_iter, decision_function_shape = decision_function_shape, random_state = random_state) @@ -552,25 +554,25 @@ class SVM: class Linear: - def __new__(self): + def __new__(cls): return sklearn.svm.SVC(kernel = 'linear') class Polynomial: - def __new__(self, power, r_bias): + def __new__(cls, power, r_bias): return sklearn.svm.SVC(kernel = 'polynomial', degree = power, coef0 = r_bias) class RBF: - def __new__(self, gamma): + def __new__(cls, gamma): return sklearn.svm.SVC(kernel = 'rbf', gamma = gamma) class Sigmoid: - def __new__(self, r_bias): + def __new__(cls, r_bias): return sklearn.svm.SVC(kernel = 'sigmoid', coef0 = r_bias) From 0fbb958dd9b42acddc143a86972c3e097f65fb5a Mon Sep 17 00:00:00 2001 From: art Date: Sat, 4 Jan 2020 10:19:31 -0600 Subject: [PATCH 6/6] regression v 1.0.0.003 --- data analysis/analysis/analysis.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/data analysis/analysis/analysis.py b/data analysis/analysis/analysis.py index 23e18282..14f8c9b4 100644 --- a/data analysis/analysis/analysis.py +++ b/data analysis/analysis/analysis.py @@ -619,10 +619,12 @@ class Regression: # this module is cuda-optimized and vectorized (except for one small part) # setup: - __version__ = "1.0.0.002" + __version__ = "1.0.0.003" # changelog should be viewed using print(analysis.regression.__changelog__) __changelog__ = """ + 1.0.0.003: + - bug fixes 1.0.0.002: -Added more parameters to log, exponential, polynomial -Added SigmoidalRegKernelArthur, because Arthur apparently needs @@ -653,12 +655,13 @@ class Regression: 'CustomTrain' ] + global device + device = "cuda:0" if torch.torch.cuda.is_available() else "cpu" #todo: document completely def set_device(self, new_device): - global device device=new_device class LinearRegKernel(): @@ -777,7 +780,7 @@ class Regression: long_bias=self.bias.repeat([1,mtx.size()[1]]) return torch.matmul(self.weights,new_mtx)+long_bias - def SGDTrain(kernel, data, ground, loss=torch.nn.MSELoss(), iterations=1000, learning_rate=.1, return_losses=False): + def SGDTrain(self, kernel, data, ground, loss=torch.nn.MSELoss(), iterations=1000, learning_rate=.1, return_losses=False): optim=torch.optim.SGD(kernel.parameters, lr=learning_rate) data_cuda=data.to(device) ground_cuda=ground.to(device)