伙计们,我正试图使用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"one_answers"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之前,必须将其转换为数字(序数或虚数)。