using confusion matrix as scoring metric in cross validation in scikit learn
machine-learning, python, scikit-learn
Solution
You could use `cross_val_predict`(See the scikit-learn docs) instead of `cross_val_score`.
instead of doing :
from sklearn.model_selection import cross_val_score
scores = cross_val_score(clf, x, y, cv=10)
you can do :
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import confusion_matrix
y_pred = cross_val_predict(clf, x, y, cv=10)
conf_mat = confusion_matrix(y, y_pred)
Problem
I am creating a pipeline in scikit learn, ``` pipeline = Pipeline([ ('bow', CountVectorizer()), ('classifier', BernoulliNB()), ]) ``` and computing the accuracy using cross validation ``` scores = cross_val_score(pipeline, # steps to convert raw messages into models train_set, # training data label_train, # training labels cv=5, # split data randomly into 10 parts: 9 for training, 1 for scoring scoring='accuracy', # which scoring metric? n_jobs=-1, # -1 = use all cores = faster ) ``` How can I report confusion matrix instead of 'accuracy'?