# Random forest classifier is predicting only one class even when the dataset is not imbalanced

This is a binary classification task, I have 15K 1's and 11K 0's (target)

I have tried the following:

X = feature_cols
y = department_wise[['Threshold']]
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=1)
model = RandomForestClassifier()
model.fit(X, y)
predicted_labels = model.predict(X_test)


X_test predicts only 0 and the accuracy comes around 88%. I don't understand why since my data set is not even imbalanced. Whatever other classifier I am trying, it shows the same result with high accuracy. Please let me know where I am going wrong.

• You may want to use F1 score to evaluate your results. – Media Jun 21 at 5:45
• Thanks. Okay, i will but I am more concerned for the fact that it is just predicting one class i.e 0 when i print predicted_labels. – tired coder Jun 21 at 5:52
• That is why I've mentioned try out F1. If you use it, you will be able to see whether it is always predicting zero for all or not. Your test data or your train data may be biased to a specific class. – Media Jun 21 at 5:58
• Okay. Trying it out. – tired coder Jun 21 at 6:06
• It's impossible to obtain 88% accuracy if the model predicts only 0s on a dataset which contains 57% of 1s. If it predicts only 0s, its accuracy will be exactly the proportion of zeros (around 43%). – Erwan Jun 21 at 13:03