X = df_merged.drop(["Genre","Song ID","Track ID"], axis = 1)
#Split
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y)
#Train
adaboost_model.fit(X_train,y_train)
#Predict
y_train_predicted = adaboost_model.predict(X_train)
y_test_predicted = adaboost_model.predict(X_test)

print "Number of Train Samples: ", (y_train.shape[0])
print "Number of Test Samples: ", (y_test.shape[0])

print "Train Classification Rate: ", (sum(y_train_predicted == y_train)) / float(y_train.shape[0])
print "Test Classification Rate: ", (sum(y_test_predicted == y_test)) / float(y_test.shape[0])

print ml_aux.getUniqueCount(y_train)
print ml_aux.getUniqueCount(y_test)

print "try func: ", ml_aux.get_error_rate(y_train, y_train_predicted)

print ml_aux.plot_confusion_matrix(y_train,y_train_predicted,"Train")
plt.show()


ml_aux.plot_confusion_matrix(y_test,y_test_predicted,"Test")
plt.show()



print y_test_t3_predicted.shape
print y_test_t4_predicted.shape
print y_test_t5_predicted.shape
print y_test_not_predicted.shape



merged_test_predicted = np.hstack([y_test_t1_predicted,
                                  y_test_t2_predicted,
                                  y_test_t3_predicted,
                                  y_test_t4_predicted,
                                  y_test_t5_predicted,
                                  y_test_not_predicted])

#Plot confusion matrix
ml_aux.plot_confusion_matrix(merged_test,merged_test_predicted,"Confusion Matrix")
#Save the plot
plt.savefig("finaltest.png")