title: Python's Xgoost: ValueError('feature_names may not contain [, ] or <')
body: <p>Python's implementation of XGBClassifier <a href="https://github.com/dmlc/xgboost/blob/master/python-package/xgboost/core.py#L667" rel="noreferrer">does not accept</a> the characters <code>[, ] or &lt;'</code> as features names.</p>
  
  <p>If that occurs, it raises the following:  </p>
  
  <blockquote>
    <p>ValueError('feature_names may not contain [, ] or &lt;')</p>
  </blockquote>
  
  <p>It would seem that the obvious solution would be to pass the equivalent numpy arrays, and get rid of the column names altogether, but if they haven't done it that must be for a reason. </p>
  
  <p>What use does XGBoost have for the feature names, and what is the downside of simply passing it Numpy Arrays instead of Pandas DataFrames? </p>