Lime explainer - Numpy broadcast error

I am working on a ML tutorial project with my own dataset.

I built a ML model using training dataset and generated predictions using test dataset.

Shape of test dataset is (418,10)

My code for model training and predictions is below

rfs_clf = forest_clf = RandomForestClassifier(n_estimators=110, max_depth= 8, max_features='auto',
                                    random_state=0, oob_score=False, min_samples_split = 2,
                                   criterion= 'gini', min_samples_leaf=2, bootstrap=False)
rfs_clf.fit(X_train, y_train)
y_f_predict = rfs_clf.predict_proba(X_test).astype(float)

Now, am trying to explain the predictions using the Lime package available here

explainer = lime.lime_tabular.LimeTabularExplainer(X_train.values,feature_names = feat_cols, class_names=['0','1'],kernel_width=3) 

The error is happening in the line below where I want to explain the prediction specifically for 2nd observation (from my test dataframe which is X_test):

exp = explainer.explain_instance(X_test.iloc[1:2,].values,y_f_predict) # fails
exp = explainer.explain_instance(X_test.iloc[1:2,],y_f_predict) # fails
exp = explainer.explain_instance(X_test[2], y_f_predict)  #key error '2'

ValueError: could not broadcast input array from shape (10,) into shape (1,)

Topic lime deep-learning neural-network classification machine-learning

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.