伙计们,我正在尝试使用sklearn(或scikit-learn)库进行机器学习,但我一次又一次遇到错误:

TypeError: cannot perform reduce with flexible type


我的代码行发生错误的是:

X=[['SALES',2,4],['SALES',3,1],['TECHNICAL',9,1]];
Y=['NICE','NOT NICE','AWESOME']
classifier.fit(np.array(X),np.array(Y))


如果我将“ SALES”和“ TECHNICAL”类别值转换为0和1之类的数字,则可以正常工作。

X=[[0,2,4],[0,3,1],[1,9,1]];
Y=['NICE','NOT NICE','AWESOME']
classifier.fit(np.array(X),np.array(Y))


我的问题是我是否必须将所有字符串类型的分类值转换为功能列表中的数字?我知道这可能是一个非常愚蠢的问题,但是请帮帮我...。

最佳答案

scikit-learn估计模型的输入必须始终是数字numpy数组。

所以是的,您必须先将分类字符串特征转换为数字(顺序或伪造),然后再将其输入sklearn。

关于machine-learning - sklearn中的功能列表中允许的数据类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33970326/

10-13 03:07