title: python sklearn accuracy_score name not defined
body: <pre><code>x = df2.Tweet
  y = df2.Class
  from sklearn.cross_validation import train_test_split
  SEED = 2000
  x_train, x_validation_and_test, y_train, y_validation_and_test = train_test_split(x, y, test_size=.02, random_state=SEED)
  x_validation, x_test, y_validation, y_test = train_test_split(x_validation_and_test, y_validation_and_test, test_size=.5, random_state=SEED)
  print ("Train set has total {0} entries with {1:.2f}% negative, {2:.2f}% positive".format(len(x_train),(len(x_train[y_train == 0])/ (len(x_train)*1.))*100,(len(x_train[y_train == 1]) / (len(x_train)*1.))*100))
  
  print("Validation set has total {0} entries with {1:.2f}% negative, {2:.2f}% positive".format(len(x_validation),(len(x_validation[y_validation == 0]) / (len(x_validation)*1.))*100,(len(x_validation[y_validation == 1]) / (len(x_validation)*1.))*100))
  print ("Test set has total {0} entries with {1:.2f}% negative,{2:.2f}% positive".format(len(x_test),(len(x_test[y_test == 0]) / (len(x_test)*1.))*100,(len(x_test[y_test == 1]) / (len(x_test)*1.))*100))
  </code></pre>
  
  <p>I have divided my data into training and test set using above code.</p>
  
  <pre><code>from sklearn.feature_extraction.text import CountVectorizer
  from sklearn.linear_model import LogisticRegression
  from sklearn.pipeline import Pipeline
  from time import time
  
  
  def accuracy_summary(pipeline, x_train, y_train, x_test, y_test):
      if len(x_test[y_test == 0]) / (len(x_test)*1.) &gt; 0.5:
          null_accuracy = len(x_test[y_test == 0]) / (len(x_test)*1.)
      else:
          null_accuracy = 1. - (len(x_test[y_test == 0]) / (len(x_test)*1.))
      t0 = time()
      sentiment_fit = pipeline.fit(x_train, y_train)
      y_pred = sentiment_fit.predict(x_test)
      train_test_time = time() - t0
      accuracy = accuracy_score(y_test, y_pred)
      print("null accuracy: {0:.2f}%".format(null_accuracy*100))
      print("accuracy score: {0:.2f}%".format(accuracy*100))
      if accuracy &gt; null_accuracy:
          print("model is {0:.2f}% more accurate than null accuracy".format((accuracy-null_accuracy)*100))
      elif accuracy == null_accuracy:
          print("model has the same accuracy with the null accuracy")
      else:
          print("model is {0:.2f}% less accurate than null accuracy".format((null_accuracy-accuracy)*100))
      print("train and test time: {0:.2f}s".format(train_test_time))
      print ("-"*80)
      return accuracy, train_test_time
  cvec = CountVectorizer()
  lr = LogisticRegression()
  n_features = np.arange(10000,100001,10000)
  def nfeature_accuracy_checker(vectorizer=cvec, n_features=n_features, stop_words=None, ngram_range=(1, 1), classifier=lr):
      result = []
      print (classifier)
      print("\n")
      for n in n_features:
          vectorizer.set_params(stop_words=stop_words, max_features=n, ngram_range=ngram_range)
          checker_pipeline = Pipeline([
              ('vectorizer', vectorizer),
              ('classifier', classifier)
          ])
          print("Validation result for {} features".format(n))
          nfeature_accuracy,tt_time = accuracy_summary(checker_pipeline, x_train, y_train, x_validation, y_validation)
          result.append((n,nfeature_accuracy,tt_time))
      return result
  </code></pre>
  
  <p>I have defined the above function to perform logistic regression on my tweets data. On running the below code i get "NameError:name accuracy_score is not defined". I converted my Class(0 and 1) data into int type but i still get this error.</p>
  
  <p>Function call code</p>
  
  <pre><code>print("RESULT FOR UNIGRAM WITHOUT STOP WORDS\n")
  feature_result_wosw = nfeature_accuracy_checker(stop_words='english')
  </code></pre>
  
  <p>Imported my csv using this code</p>
  
  <pre><code>cols = ['Tweet','Class']
  df = pd.read_csv("data.csv",header = None,names = cols,converters={"CLASS":int})
  df.head()
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/7dNof.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7dNof.png" alt="enter image description here"></a></p>