python - ValueError:未知标签类型:使用 KNN 时为“未知”
问题描述
我是 python 新手并尝试运行 KNN,但是当我输入代码时,我收到错误 ValueError: Unknown label type:'unknown'。我已经对所有分类数据进行了编码,并删除了我不需要的那些,以避免虚拟陷阱。我还需要做什么来清除它?
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import fbeta_score
training_accuracy = []
test_accuracy = []
neighbors_settings = range(1, 11)
for n_neighbors in neighbors_settings:
knn = KNeighborsClassifier(n_neighbors=n_neighbors)
knn.fit(x_train, y_train)
train_pred=knn.predict(x_train)
test_pred=knn.predict(x_test)
training_accuracy.append(fbeta_score(y_train, train_pred, beta=1))
test_accuracy.append(fbeta_score(y_test, test_pred, beta=1))
plt.plot(neighbors_settings, training_accuracy, label="training accuracy")
plt.plot(neighbors_settings, test_accuracy, label="test accuracy")
plt.ylabel("Accuracy")
plt.xlabel("n_neighbors")
plt.legend()
plt.savefig('knn_compare_model')
我希望有一个图表来显示测试和训练的准确性,但我在下面得到了这个;
ValueError Traceback (most recent call last)
<ipython-input-22-8a3a1f3c5c24> in <module>
11 # build the model
12 knn = KNeighborsClassifier(n_neighbors=n_neighbors)
---> 13 knn.fit(x_train, y_train)
>
14
15 # if accuracy of prediction on training set is high but it is low
on test set: So overfitting
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\neighbors\base.py in fit(self, X, y)
903 self.outputs_2d_ = True
904
--> 905 check_classification_targets(y)
906 self.classes_ = []
907 self._y = np.empty(y.shape, dtype=np.int)
>
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py in
check_classification_targets(y)
169 if y_type not in ['binary', 'multiclass', 'multiclass- multioutput',
>
170 'multilabel-indicator', 'multilabel-sequences']:
--> 171 raise ValueError("Unknown label type: %r" % y_type)
>
172
173
ValueError: Unknown label type: 'unknown'
解决方案
您y_train
可能是可能导致此错误的对象类型,因此请添加该行
y_train = y_train.astype('int')
前
knn.fit(x_train, y_train)
也对你的y_test
.
希望这可以帮助!
推荐阅读
- activemq - 在 IBM MQ 和 ActiveMQ 之间建立连接
- python - 将图像放在 PyQt QTableWidget 标题中
- android - 片段替换显示两个片段
- mysql - MySql 查询以检索 2 个用户之间的对话
- php - 如何将数组重构为多数组转换函数?
- c# - Unity 在屏幕上显示/隐藏菜单
- ajax - 使用 HTTP2 如何限制并发请求的数量?
- javascript - `NoSuchSessionError: invalid session id` 使用 selenium 时,即使应用程序工作正常
- c# - 表末尾的基本模型列顺序
- r - 如何使用 R 语言编写一个仅从整数列表中返回奇数的函数?