title: Scikit learn Error Message 'Precision and F-score are ill-defined and being set to 0.0 in labels'
body: <p>Im working on a binary classification model, classifier is naive bayes. I have an almost balanced dataset however I get the following error message when I predict:</p>
  
  <pre><code>UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.
    'precision', 'predicted', average, warn_for)
  </code></pre>
  
  <p>I'm using gridsearch with CV k-fold 10. The test set and predictions contain both classes, so I don't understand the message. I'm working on the same dataset, train/test split, cv and random seed for 6 other models and those work perfect. Data is ingested externally into a dataframe, randomize and seed is fixed. Then the naive bayes classification model class the file at the beginning of before this code snippet.</p>
  
  <pre><code>X_train, X_test, y_train, y_test, len_train, len_test = \
       train_test_split(data['X'], data['y'], data['len'], test_size=0.4)
  pipeline = Pipeline([
      ('classifier', MultinomialNB()) 
  ])
  
  cv=StratifiedKFold(len_train, n_folds=10)
  
  len_train = len_train.reshape(-1,1)
  len_test = len_test.reshape(-1,1)
  
  params = [
    {'classifier__alpha': [0, 0.0001, 0.001, 0.01]}
  
  ]
  
  grid = GridSearchCV(
      pipeline,
      param_grid=params,
      refit=True,  
      n_jobs=-1, 
      scoring='accuracy',
      cv=cv, 
  )
  
  nb_fit = grid.fit(len_train, y_train)
  
  preds = nb_fit.predict(len_test)
  
  print(confusion_matrix(y_test, preds, labels=['1','0']))
  print(classification_report(y_test, preds))
  </code></pre>
  
  <p>I was 'forced' by python to alter the shape of the series, maybe that is the culprit?</p>