title: Feature shape mismatch after dropping features during feature selection on test set (holdout set)
body: <p>I have split my data (train.tsv) into 2 sets (Train &amp; Validation sets), i.e., X_train, y_train, X_validation, y_validation.</p>
  <p>After feature selection, I have dropped off 6 features. After dropping the features:</p>
  <pre><code>X_train.shape, y_train.shape, X_validation.shape, y_validation.shape, X_test.shape
  </code></pre>
  <p>returns:</p>
  <blockquote>
  <p>((59372, 40), (59372,), (14844, 40), (14844,), (10618, 46))</p>
  </blockquote>
  <p>After fitting my model on X_train &amp; y_train, I have predicted my model on X_validation.</p>
  <p>But I also want to predict my model on a separate holdout set (test.tsv) using</p>
  <pre><code>y_pred_on_testset = model.predict(X_test)
  </code></pre>
  <p>This holdout set is essentially unseen data which I did not train my model on. However this holdout set has 46 features (as seen above from X_test.shape).</p>
  <p>Does it make sense if I also drop the 6 features on this test.tsv (test set)? I know for sure I can predict my model on this test set after I drop the 6 features, else it will return an error:</p>
  <blockquote>
  <p>ValueError: Feature shape mismatch, expected: 40, got 46</p>
  </blockquote>
  <p><strong>because I trained my model on 40 features, not 46</strong>.</p>
  <p>I'm not sure if I should proceed to drop the 6 features? As the test set is unseen data which I shouldn't be modifying?</p>
  <p>Any advise is very much appreciated, thanks!</p>