This post is also available in: English-US (英語)
ValueError: DataFrame.dtypes for data must be int, float or bool. Did not expect the data types in fields ...
上記は、LightGBMを利用している際のエラーです。
エラーの内容は要するに LightGBM 側で pandas のDataFrameオブジェクトには未だ対応していないので、ラベルエンコーダー(sklearn.preprocessing.LabelEncoder)とかを使って、int, float or bool に変換してくださいって事らしいです。
以下、簡単なサンプルコード書いてます。
pandas のDataFrameオブジェクトをsklearnのラベルエンコーダー(sklearn.preprocessing.LabelEncoder)を用いてfit(),transform()しています。
# coding:utf-8 from sklearn import preprocessing import numpy as np import pandas as pd # サンプルデータ data = ["ABC", "あああ", 1, 2, "いいい"] # pandasのデータフレームオブジェクトの生成 df = pd.DataFrame(data) # ラベルエンコーダーの生成とfit,trasform lbl = preprocessing.LabelEncoder() lbl.fit(df) sample = lbl.transform(df) # ラベルエンコーダーで変換された値 print sample # This Outputs [2 3 0 1 4]