from sklearn.tree import DecisionTreeRegressor
from utils.cross_validation import cross_valid, cross_valid_hue

''' 
regression tree for each response
'''


# get exsisting valence and arousal data
ids, va, aro, h, s, v = uniform_va_hsv_polar('csv/surveydatahsv.csv')
h_dict, s_dict, v_dict = csv_2_dict_hsv('csv/surveydatahsv.csv')

# calculate fetures for song in train set

X = np.column_stack((va,aro))
Yh = h
Ys = s
Yv = v

best_avg = sys.maxint
best_h = sys.maxint
best_s = sys.maxint
best_v = sys.maxint


X, Yh, Ys, Yv, ids = shufle_same(X, Yh, Ys, Yv, ids)   
    
print 'H: ' + str(cross_valid_hue(10, X, Yh, ids, h_dict))
print 'S: ' + str(cross_valid(10, X, Ys, ids, s_dict))
print 'V: ' + str(cross_valid(10, X, Yv, ids, v_dict))
from utils.cross_validation import cross_valid

''' 
regression tree for each response
'''


# get exsisting valence and arousal data
ids, va, aro, rows = seperate_va('csv/survery2dataMin1.csv')

while 101 in ids:
    id101 = ids.index(101)
    ids[id101:(id101+1)] = []
    va[id101:(id101+1)] = []
    aro[id101:(id101+1)] = []

va_dict, aro_dict = csv_2_dict_va('csv/survery2dataMin1.csv')

# calculate fetures for song in train set
no, feat = read_fake_chroma('features/fakechroma')
X = feature_matrix_by_id(ids, feat)
Yva = va
Yaro = aro

#for i in range(100):
X, Yva, Yaro, ids = shufle_same(X, Yva, Yaro, ids)   
    
print 'v: ' + str(cross_valid(10, X, Yva, ids, va_dict))
print 'A: ' + str(cross_valid(10, X, Yaro, ids, aro_dict))

import numpy as np

from sklearn.tree import DecisionTreeRegressor
from utils.cross_validation import cross_valid, cross_valid_polar

''' 
regression tree for each response
'''


# get exsisting valence and arousal data
ids, va, aro, h, s, v= uniform_va_hsv_polar('csv/surveydatahsv.csv')
va_dict, aro_dict = csv_2_dict_va_polar('csv/survery2dataMin1.csv')

# calculate fetures for song in train set

X = np.column_stack((h,s,v))
Yva = va
Yaro = aro


best_avg = sys.maxint
best_aro = sys.maxint
best_va = sys.maxint


X, Yva, Yaro, ids = shufle_same(X, Yva, Yaro, ids)   

print 'fi: ' + str(cross_valid_polar(10, X, Yva, ids, va_dict))
print 'r: ' + str(cross_valid(10, X, Yaro, ids, aro_dict))
from sklearn.tree import DecisionTreeRegressor
from utils.cross_validation import cross_valid, cross_valid_hue

""" 
regression tree for each response
"""


# get exsisting valence and arousal data
ids, va, aro, h, s, v = uniform_va_hsv("csv/surveydatahsv.csv")
h_dict, s_dict, v_dict = csv_2_dict_hsv("csv/surveydatahsv.csv")

# calculate fetures for song in train set

X = np.column_stack((va, aro))
Yh = h
Ys = s
Yv = v

best_avg = sys.maxint
best_h = sys.maxint
best_s = sys.maxint
best_v = sys.maxint

X, Yh, Ys, Yv, ids = shufle_same(X, Yh, Ys, Yv, ids)

print "H: " + str(cross_valid_hue(10, X, Yh, ids, h_dict))
print "S: " + str(cross_valid(10, X, Ys, ids, s_dict))
print "V: " + str(cross_valid(10, X, Yv, ids, v_dict))
'''


# get exsisting valence and arousal data
ids, va, aro, r, g, b= uniform_va_rgb_polar('csv/surveydatahsv.csv')
r_dict, g_dict, b_dict = csv_2_dict_rgb('csv/surveydatahsv.csv')

# calculate fetures for song in train set

X = np.column_stack((va,aro))
Yr = r
Yg = g
Yb = b

best_avg = sys.maxint
best_r = sys.maxint
best_g = sys.maxint
best_b = sys.maxint

#for i in range(100):
X, Yr, Yg, Yb, ids = shufle_same(X, Yr, Yg, Yb, ids)   

print 'R: ' + str(cross_valid(10, X, Yr, ids, r_dict))
print 'G: ' + str(cross_valid(10, X, Yg, ids, g_dict))
print 'B: ' + str(cross_valid(10, X, Yb, ids, b_dict))