def experiment_1(): ut.write_mood(2) ut.write_mood_2() parser.parse_file(SOURCE_DATA_FILE,E_TARGET_DATA_FILE) parser.parse_file(SOURCE_DATA_FILE_2,E_TARGET_DATA_FILE_2) #hyperparameters were obtained using gridsearch (see def optimize_par(data_file) in echonestanalyzer.py) classifiers_1 = [neighbors.KNeighborsClassifier(6, weights='distance'), svm.SVC(kernel='poly', C=100, degree=3),svm.SVC(kernel='rbf', C=1, gamma = 0.0001),RandomForestClassifier(n_estimators=400)] classifiers_2 = [neighbors.KNeighborsClassifier(8, weights='distance'), svm.SVC(kernel='poly', C=10, degree=1),svm.SVC(kernel='rbf', C=10, gamma = 0.001),RandomForestClassifier(n_estimators=500)] for classifier in classifiers_1: analyzer.cross_val(E_TARGET_DATA_FILE, classifier) for classifier in classifiers_2: analyzer.cross_val(E_TARGET_DATA_FILE_2, classifier)
def experiment_2(): #this experiment is only for dataset1 (contains anger mood tracks) classifier = RandomForestClassifier(n_estimators=400) #2 classes ut.write_mood(2) parser.parse_file(SOURCE_DATA_FILE, E_TARGET_DATA_FILE) analyzer.cross_val(E_TARGET_DATA_FILE, classifier) analyzer.run_analyzer(E_TARGET_DATA_FILE, classifier) #3 classes #dataset1 ut.write_mood(3) #parse features parser.parse_file(SOURCE_DATA_FILE, E_TARGET_DATA_FILE) #run evaluation analyzer.cross_val(E_TARGET_DATA_FILE, classifier) #run single evaluation and return the classificaton errors analyzer.run_analyzer(E_TARGET_DATA_FILE, classifier)
def experiment_2(): #this experiment is only for dataset1 (contains anger mood tracks) classifier = RandomForestClassifier(n_estimators=400) #2 classes ut.write_mood(2) parser.parse_file(SOURCE_DATA_FILE,E_TARGET_DATA_FILE) analyzer.cross_val(E_TARGET_DATA_FILE, classifier) analyzer.run_analyzer(E_TARGET_DATA_FILE, classifier) #3 classes #dataset1 ut.write_mood(3) #parse features parser.parse_file(SOURCE_DATA_FILE,E_TARGET_DATA_FILE) #run evaluation analyzer.cross_val(E_TARGET_DATA_FILE, classifier) #run single evaluation and return the classificaton errors analyzer.run_analyzer(E_TARGET_DATA_FILE, classifier)
def experiment_1(): ut.write_mood(2) ut.write_mood_2() parser.parse_file(SOURCE_DATA_FILE, E_TARGET_DATA_FILE) parser.parse_file(SOURCE_DATA_FILE_2, E_TARGET_DATA_FILE_2) #hyperparameters were obtained using gridsearch (see def optimize_par(data_file) in echonestanalyzer.py) classifiers_1 = [ neighbors.KNeighborsClassifier(6, weights='distance'), svm.SVC(kernel='poly', C=100, degree=3), svm.SVC(kernel='rbf', C=1, gamma=0.0001), RandomForestClassifier(n_estimators=400) ] classifiers_2 = [ neighbors.KNeighborsClassifier(8, weights='distance'), svm.SVC(kernel='poly', C=10, degree=1), svm.SVC(kernel='rbf', C=10, gamma=0.001), RandomForestClassifier(n_estimators=500) ] for classifier in classifiers_1: analyzer.cross_val(E_TARGET_DATA_FILE, classifier) for classifier in classifiers_2: analyzer.cross_val(E_TARGET_DATA_FILE_2, classifier)
import echonestparser import lyricsparser import cPickle as pickle import numpy as np SOURCE_DATA_FILE = "../../msd_dense_subset/mood.txt" SOURCE_DATA_FILE_2 = "../../msd_dense_subset/mood2.txt" COMBINED_TARGET_DATA_FILE = "../../msd_dense_subset/mood.pkl" LYRICS_TARGET_DATA_FILE = "../../msd_dense_subset/mood_lyrics_features_2.pkl" ECHONEST_TARGET_DATA_FILE = "../../msd_dense_subset/mood_echonest_features_2.pkl" #parse echonestfeatures echonestparser.parse_file(SOURCE_DATA_FILE_2, ECHONEST_TARGET_DATA_FILE) #parse lyricsfeatures lyricsparser.parse_file(SOURCE_DATA_FILE_2,LYRICS_TARGET_DATA_FILE,1) #get both features and combine them to a new feature space with open(ECHONEST_TARGET_DATA_FILE, 'r') as f: data = pickle.load(f) echonest_features = data['features'] echonest_tracks = data['tracks'] with open(LYRICS_TARGET_DATA_FILE, 'r') as f: data = pickle.load(f) labels = data['labels'] lyrics_features = data['features'] lyrics_tracks = data['tracks'] combined_tracks = list() combined_features = np.empty((len(lyrics_tracks),echonest_features.shape[1]+lyrics_features.shape[1]),dtype='float')