-
ラベルのエンコーディングを確認する: XGBoostは、ラベルを整数値として扱います。したがって、ラベルが文字列や浮動小数点数としてエンコードされている場合、エラーが発生します。まず、ラベルのデータ型を確認し、必要に応じてエンコーディングを変更します。
# ラベルのデータ型を確認する print(df['label'].dtype) # エンコーディングを変更する df['label'] = df['label'].astype(int)
-
ラベルの一意な値を確認する: エラーメッセージによれば、一意のクラスが無効であるとされています。したがって、ラベルの一意な値を確認して、問題がないか確認する必要があります。
# ラベルの一意な値を表示する print(df['label'].unique())
もし一意な値が予想外のものである場合、データセットを再評価し、ラベルの正しい値を特定する必要があります。
-
ラベルのクラスの数を確認する: エラーメッセージは、クラスの数が無効であるとも示しています。XGBoostは二値分類や多値分類に使用できますが、クラスの数が正しく指定されていないとエラーが発生します。
# ラベルのクラスの数を確認する num_classes = len(df['label'].unique()) print(num_classes)
クラスの数が予想外のものである場合、データセットを再評価し、正しいクラスの数を特定する必要があります。