title: how to speed up training process
body: <p>I'm using <code>sklearn</code> to train a classification model, the data shape and training pipeline is:</p>
  
  <pre><code>clf = Pipeline([
      ("imputer", Imputer(missing_values='NaN', strategy="mean", axis=0)),
      ('feature_selection', VarianceThreshold(threshold=(.97 * (1 - .97)))),
      ('scaler', StandardScaler()),
      ('classification', svm.SVC(kernel='linear', C=1))])
  
  print X.shape, y.shape
  (59381, 895) (59381,)
  </code></pre>
  
  <p>I have checked that <code>feature_selection</code> will reduce the feature vector size from <code>895</code> to <code>124</code></p>
  
  <pre><code>feature_selection = Pipeline([
      ("imputer", Imputer(missing_values='NaN', strategy="mean", axis=0)),
      ('feature_selection', VarianceThreshold(threshold=(.97 * (1 - .97))))
      ])
  
  feature_selection.fit_transform(X).shape
  (59381, 124) (59381,)
  </code></pre>
  
  <p>then I try to get accuracy as below</p>
  
  <pre><code>scores = cross_validation.cross_val_score(clf, X, y)
  print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
  </code></pre>
  
  <p>but the training process is very slow, I want to know to speed up the process in this situation? or the size of feature vector <code>124</code> is still too large to <code>svm</code> model?</p>