Ejemplo n.º 1
0
    
    # load audio models

   
    # fit audio ensemble
    trainy_audio = pd.Series(trainy_audio).factorize(sort=True)[0]
    
    audio_logistic = fit_logistic(all_models, trainX_audio, trainy_audio)
    
    #
    # evaluate standalone models on test dataset
    from tensorflow.keras.utils import to_categorical
    from sklearn.metrics import accuracy_score, confusion_matrix
    
    stackedX_train = stacked_dataset(all_models, trainX_audio)
    trainy_audio_pred = audio_logistic.predict(stackedX_train)
    
    print('Stacked Model Accuracy (train): ', accuracy_score(trainy_audio, trainy_audio_pred)) 

    #############
    testy_audio = pd.Series(testy_audio).factorize(sort=True)[0]
      
    stackedX_test = stacked_dataset(all_models, testX_audio)
    testy_audio_pred = audio_logistic.predict(stackedX_test)  
    
    print('Stacked Model Accuracy (test): ', accuracy_score(testy_audio, testy_audio_pred)) 

    # stacking: regression + 4 emotions (treat audio models as one)
    from sklearn.linear_model import LogisticRegression
    
Ejemplo n.º 2
0
from scipy.special import softmax
import numpy as np

index_map = {'neg': 0, 'neu': 1, 'pos': 2}
rev = { v:k for k,v in index_map.items()}


##### audio
# convert audio into feature
audio = audio2wave(file)
audio_X = prepare_data_librosa(audio,
                               features='logmel',
                               scaled=True)

stackedX_test = stacked_dataset(all_models, audio_X)
audio_pred = audio_logistic.predict(stackedX_test)  
print('Audio prediction:', [rev[item] for item in audio_pred])

##### text
text_pred = predict_text(bert_model,text)
print('Text prediction:', [rev[item] for item in np.array([np.argmax(text_pred)])])

##### ensemble
ensemble_text_test = softmax(text_pred)
ensemble_audio_test = audio_logistic.predict_proba(stackedX_test)

stack_test = np.dstack((ensemble_text_test, ensemble_audio_test))
stack_test = stack_test.reshape((stack_test.shape[0], stack_test.shape[1]*stack_test.shape[2]))

ensemble_pred = final_logistic.predict(stack_test)