import numpy as np
from scipy.io.wavfile import read
from sklearn.linear_model import LinearRegression
from sklearn.cluster import KMeans
from sklearn.neural_network import MLPClassifier

# Load training and test data
X_train = read('../X_train.wav')[1].reshape(-1, 784)
y_train = (read('../y_train.wav')[1] * 9).astype(int)
X_test = read('../X_test.wav')[1].reshape(-1, 784)
y_test = (read('../y_test.wav')[1] * 9).astype(int)
X20 = X_test[:1000]
yt20 = y_test[:1000]

# STore table (f.coef) for many truth tables wait until 100% prob.

f = MLPClassifier() # LinearRegression()
g = KMeans(n_clusters=3)
h = MLPClassifier()

sol = np.zeros((1000,100))
X_ = np.random.randint(0,2,(10,100))
w = []

for _ in range(100):
    idx = np.random.randint(0,60000,100)
    X = X_train[idx]
    yt = y_train[idx]
    f.fit(X,X_[yt])
    w.append(f.coefs_[0])

# how to use w 0..99
for i in range(100):
    sol += 0.01 * (X_train[:1000]@w[i].T)

#for _ in range(100):
#    h.partial_fit(sol,y_train[:1000], classes=range(10))

#print(h.score(sol,y_train[:1000]))


    





