title: scikit predictions different across executions?
body: <p>I'm trying the following code to study scikit-learn:</p>
  
  <pre><code>import numpy as np
  
  from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
  from sklearn.feature_extraction.text import HashingVectorizer
  from sklearn.naive_bayes import BernoulliNB, MultinomialNB
  
  dataset = {
      "data": {
          "chinese beijing chinese",
          "chinese chinese shanghai",
          "chinese macao",
          "tokyo japan chinese",
      },
      "target": np.array([0,0,0,1]),
      "target_names": ["c","c","c","j"]
  }
  
  vectorizer = TfidfVectorizer(sublinear_tf=True, max_df=0.5, stop_words='english')
  X_train = vectorizer.fit_transform(dataset["data"])
  y_train = dataset["target"]
  
  clf = MultinomialNB(alpha=.01)
  clf.fit(X_train, y_train)
  
  X_test = vectorizer.transform(["chinese chinese chinese tokyo japan"])
  pred = clf.predict(X_test)
  
  print(pred)
  </code></pre>
  
  <p>I know the I'm testing with too little data, but the outputs of several runs are different:</p>
  
  <pre><code>$ python3 teste.py 
  [0]
  $ python3 teste.py 
  [1]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [1]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [0]
  $ python3 teste.py 
  [1]
  $ python3 teste.py 
  [1]
  $ python3 teste.py 
  [0]
  </code></pre>
  
  <p>I expected that the output would always be "[1]".</p>
  
  <p>is this variable output consequence of the small input dataset? 
  or the result should really be fixed as I expected?</p>
  
  <p>I'm using python3 3.4.3, scikit-learn 0.17.1 and numpy 1.11.0.</p>