title: Scikit-learn: "The least populated class in y has only 1 member"
body: <p>I am trying to do a Random Forest Regression using Scikit-learn. The first step after loading the data using Pandas is to split the data into a test set and a training set. However, I get the error: </p>
  
  <blockquote>
    <p>The least populated class in y has only 1 member</p>
  </blockquote>
  
  <p>I've searched Google and found various instances of this error, but I still can't seem to get an understanding of what this error means.</p>
  
  <pre><code>training_file = "training_data.txt"
  data = pd.read_csv(training_file, sep='\t')
  
  y = data.Result
  X = data.drop('Result', axis=1)
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123, stratify=y)
  
  pipeline = make_pipeline(preprocessing.StandardScaler(), RandomForestRegressor(n_estimators=100))
  
  hyperparameters = { 'randomforestregressor__max_features' : ['auto', 'sqrt', 'log2'],
                  'randomforestregressor__max_depth' : [None, 5, 3, 1] }
  
  model = GridSearchCV(pipeline, hyperparameters, cv=10)
  
  model.fit(X_train, y_train)
  
  prediction = model.predict(X_test)
  
  joblib.dump(model, 'ms5000.pkl')
  </code></pre>
  
  <p>The <code>train_test_split</code> method yields this stack trace:</p>
  
  <pre><code>Traceback (most recent call last):
      File "/Users/justin.shapiro/Desktop/IPML_Model/model_definition.py", line 18, in &lt;module&gt;
      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.22, random_state=123, stratify=y)
    File "/Library/Python/2.7/site-packages/sklearn/model_selection/_split.py", line 1700, in train_test_split
  train, test = next(cv.split(X=arrays[0], y=stratify))
    File "/Library/Python/2.7/site-packages/sklearn/model_selection/_split.py", line 953, in split
  for train, test in self._iter_indices(X, y, groups):
    File "/Library/Python/2.7/site-packages/sklearn/model_selection/_split.py", line 1259, in _iter_indices
  raise ValueError("The least populated class in y has only 1"
  ValueError: The least populated class in y has only 1 member, which is too few. The minimum number of groups for any class cannot be less than 2.
  </code></pre>
  
  <p>This is a sample of my dataset:</p>
  
  <pre><code>var1    var2    var3    var4    var5    var6    var7    var8    Result
  high    5000.0  0       60      1000    75      0.23    0.75    17912.0
  mid     5000.0  0       60      1000    50      0.23    0.75    18707.0
  low     5000.0  0       60      1000    25      0.23    0.75    17912.0
  high    5000.0  5       60      1000    75      0.23    0.75    18577.0
  mid     5000.0  5       60      1000    50      0.23    0.75    19407.0
  low     5000.0  5       60      1000    25      0.23    0.75    18577.0
  </code></pre>
  
  <p>What is this error and how can I get rid of it?</p>