Hyperopt vs Default Values
According to me your approach of oversampling(as mentioned in comment) is not correct.
When you apply SMOTE on each FOLD(assuming K-FOLD), it will over sampled the minority class. And you will always get the mixed response from K-FOLD, which is not the purpose of K-FOLD validation.

Let me try to explain you with an example:


Consider you have a dataset of 4 classes A, B, C and D.
Samples of each class, Class A has 10000, B has 2000, C has 1000, D has 6000.
During K Fold cross validation, sample picked up by system for training having majority of A and D classes.
Whereas for testing it has majorly B and C. Since you have used SMOTE it will over sampled the other two classes and you will get decent results in this case as well.


NOTE:It could be the one of the reason.

My suggestion:
 1. Shuffle the whole data set.
 2. Divide into training and test data.
 3. Apply SMOTE on training data.
 4. Follow other steps of Model training, without manipulating the data at this stage.
 5. Evaluate model on the actual test data.