【发布时间】:2013-06-30 19:18:40
【问题描述】:
错误是这样的:
Traceback (most recent call last):
File "NearestCentroid.py", line 53, in <module>
clf.fit(X_train.todense(),y_train)
File "/usr/local/lib/python2.7/dist-packages/scikit_learn-0.13.1-py2.7-linux-i686.egg/sklearn/neighbors/nearest_centroid.py", line 115, in fit
variance = np.array(np.power(X - self.centroids_[y], 2))
IndexError: arrays used as indices must be of integer (or boolean) type
代码是这样的:
distancemetric=['euclidean','l2']
for mtrc in distancemetric:
for shrkthrshld in [None]:
#shrkthrshld=0
#while (shrkthrshld <=1.0):
clf = NearestCentroid(metric=mtrc,shrink_threshold=shrkthrshld)
clf.fit(X_train.todense(),y_train)
y_predicted = clf.predict(X_test.todense())
我正在使用scikit-learn 包,X-train,y_train 是 LIBSVM 格式,X 是特征:值对,y_train 是目标/标签,X_train 是 CSR 矩阵格式,shrink_threshold 不支持 CSR 稀疏矩阵,所以我将.todense() 添加到X_train,然后出现此错误,谁能帮我解决这个问题?非常感谢!
【问题讨论】:
-
y_train的值是多少?
标签: python scikit-learn