In [1]:
from __future__ import print_function
import numpy as np
import googleprediction
Google's APL library is setup to work well with command line applications. Mimic some of that behavior here.
In [2]:
model = googleprediction.GooglePredictor(
"myproject",
"mybucket/X_train_spectra_ave_goog_everything.csv",
"tswift_fft_ave_everything",
"client_secrets.json")
In [ ]:
model.fit('CLASSIFICATION')
In [ ]:
model.get_params()
In [6]:
with np.load("data_files.npz") as data:
X_train = data['X_train']
Y_train = data['Y_train']
X_test = data['X_test']
Y_test = data['Y_test']
X_comp = data['X_comp']
del data
In [7]:
X_train = np.float64(X_train)
X_test = np.float64(X_test)
X_comp = np.float64(X_comp)
In [8]:
def convert_to_spectra(X):
out = []
for row in X:
xfft = np.fft.fft(row)
n = len(xfft)
half_n = np.ceil(n/2.0)
xfft = (2.0 / n) * xfft[1:half_n]
out.append(np.abs(xfft))
out = np.array(out)
return out
In [9]:
X_train_spectra = convert_to_spectra(X_train)
X_test_spectra = convert_to_spectra(X_test)
X_comp_spectra = convert_to_spectra(X_comp)
In [10]:
def moving_average(X, n=3):
ret = []
for row in X:
row = np.cumsum(row)
row[n:] = row[n:] - row[:-n]
row = row[n - 1:] / n
ret.append(row)
ret = np.array(ret)
return ret
In [11]:
X_train_spectra = moving_average(X_train_spectra, n=5)
X_test_spectra = moving_average(X_test_spectra, n=5)
X_comp_spectra = moving_average(X_comp_spectra, n=5)
In [12]:
X_train_spectra = np.int16(X_train_spectra)
X_test_spectra = np.int16(X_test_spectra)
X_comp_spectra = np.int16(X_comp_spectra)
In [13]:
X_comp_spectra.shape
Out[13]:
In [14]:
Y_comp_spectra = model.predict(X_comp_spectra)
In [15]:
np.savetxt("gpapi_Y_comp_spectra_ave_everything.csv", np.array(Y_comp_spectra, dtype=int), delimiter=',', fmt='%i')
In [ ]: