我有一个数据集data
和一个带标签的数组target
,我使用k-Nearest Neighbors算法构建了一个监督模型。
neigh = KNeighborsClassifier()
neigh.fit(data, target)
我现在能够使用这个模型对我的学习集进行分类。获得分类分数:
neigh.score(data, target)
现在我的问题是这个分数取决于target
对象的类型。
list()
创建并填入target.append()
,则分数方法返回0.68。 target = np.empty(shape=(length,1), dtype="S36")
创建(它只包含36个字符的字符串),并用target[k] = value
填充,则score方法返回0.008。 为了确定结果是否真的不同,我创建了列出
结果的文本文件for k in data:
neigh.predict(k)
在每种情况下。结果是一样的。
什么可以解释分数差异?
答案 0 :(得分:2)
np.empty(shape=(length, 1), dtype="S36")
创建一个错误形状的数组。 scikit-learn估算器几乎总是需要一维数组,即shape=length
。这不会导致例外的事实是疏忽。