Fixing ValueError: feature_names must not contain [, ], or < in XGBoost
メンテナーはふだん 2 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 68/100
- issue の種類
- ドキュメント
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- python
調査の方向性
このissueには質問とPythonの例を含む回答案がありますが、追加先のファイルやテストは指定されていません。まず、リポジトリ内の既存のFAQ項目がどのように整理されているかを確認し、その後、適切な場所にこのQ&Aを追加してください。項目で機能名に使用できない文字を説明し、ドキュメントに記載されたクリーンアップの例を示せば完了です。
索引モデルが issue の本文から書いたものです。
説明
Course
machine-learning-zoomcamp
Question
When creating a DMatrix for XGBoost in Module 6 using the features outputted by DictVectorizer:
dtrain = xgb.DMatrix(X_train, label=y_train, feature_names=dv.get_feature_names_out())
I get this error:
ValueError: feature_names must not contain [, ], or <
How do I fix this?
Answer
This error occurs because XGBoost has strict rules for feature names and does not allow certain characters (like [, ], <, or =). When using DictVectorizer with text or categorical columns, it often generates feature names containing these exact characters (e.g., origin=USA).
To resolve this, you must clean the feature names by replacing the invalid characters before passing them to DMatrix. You can do this easily using Python's re (regex) module:
import re
import xgboost as xgb
# 1. Get original feature names from DictVectorizer
feature_names = dv.get_feature_names_out().tolist()
# 2. Replace [, ], <, >, and = with underscores
clean_feature_names = [re.sub(r'[\[\]<>=]', '_', f) for f in feature_names]
# 3. Create the DMatrix using the clean names
dtrain = xgb.DMatrix(X_train, label=y_train, feature_names=clean_feature_names)
dval = xgb.DMatrix(X_val, label=y_val, feature_names=clean_feature_names)
### Checklist
- [x] I have searched existing FAQs and this question is not already answered
- [x] The answer provides accurate, helpful information
- [x] I have included any relevant code examples or links
- 主要言語
- Python
- スター
- 8
- フォーク
- 20
- 平均マージ
- 7日 9時間
- マージ済み PR(30日)
- 8
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataTalksClub/faq のほかの issue
-
How to fix uv warning: VIRTUAL_ENV does not match the project environment path対応中かも @github-actions が 2 日前に担当しました。 オープンfaq-proposal
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
DataTalksClub/faq#534 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
Fixing ValueError: This solver needs samples of at least 2 classes in Logistic Regression対応中かも @github-actions が 2 日前に担当しました。 オープンfaq-proposal
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
DataTalksClub/faq#532 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
DataTalksClub/faq#531 ·
メンテナーはふだん 2 日以内に返信
-
[FAQ] omework 5 (2026): Why does `/predict` return 200 OK for `"Paid_Ads"`, `"tiktok"` or a negative count, and how do I reject bad input?対応中かも @github-actions が 4 日前に担当しました。 オープンfaq-proposal
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
DataTalksClub/faq#524 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[FAQ]対応中かも @github-actions が 5 日前に担当しました。 オープンfaq-proposal
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
DataTalksClub/faq#521 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
DataTalksClub/faq の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Nixtla/mlforecast#823 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
microsoft/ML-For-Beginners#1061 ·
-
bot-found documentation priority: P3
難易度 2/5 1時間未満 初心者へのやさしさ 82/100
madenvel/KalinkaPlayer#503 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
EleutherAI/lm-evaluation-harness#4508 ·
メンテナーはふだん 1 日以内に返信