我正在尝试在pandas数据帧中使用tpot和输入 . 我一直收到错误:
TypeError:输入类型不支持ufunc'isnan',根据强制转换规则''safe',输入无法安全地强制转换为任何支持的类型
我相信这个错误来自isnan无法处理我的数据结构,但我不确定如何以不同方式格式化它 . 我有分类和连续输入和连续输出的组合 . 以下是具有类似数据的代码示例:
train_x=[[1,2,3],['test1','test2','test3'],[56.2,4.5,3.4]]
train_y=[[3,6,7]]
from tpot import TPOTRegressor
tpot=TPOTRegressor()
我是否必须以某种方式转换我的分类数据? dataframe.values和dataframe.as_matrix给我的对象也给了我一个错误 .
1 回答
那是对的 - 您需要转换您的分类值 . TPOT假设所有数据都将采用scikit-learn兼容格式,这意味着所有数据都是数字的 . 我们最近才添加了对缺失值的支持,但大多数scikit-learn算法都不接受缺少值的数据 .
我重新编写了下面的示例,以显示如何使用pandas将分类值转换为数值 .