伙计们我正在尝试使用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))
我的问题是我是否必须将字符串类型的所有分类值转换为要素列表中的数字?我知道这可能是一个非常愚蠢的问题,但只是帮助我......
答案 0 :(得分:1)
{{1}}估算模型的输入必须始终是数字numpy数组。
所以是的,你必须先将分类字符串特征转换为数字(序数或虚数),然后再将它们输入sklearn。