In other for LIME to work correctly and effectively, this will require probability scores rather than simple predictions.
The current setup uses rf.predict, which produces 0/1 labels. For LIME to receive detailed probability distribution, use rf.predict_proba, this will properly explain the predictions.
To solve this, when calling explainer.explain_instance switch to rf.predict_proba. This adjustment will allow LIME to access probability score necessary for its analysis.