解决KNeighborsClassifier报错信息:DataConversionWarning

解决KNeighborsClassifier报错信息:DataConversionWarning: A column-vector y was passed when a 1d array was expected

问题描述

在pycharm中使用sklearn.neighbors包中KNeighborsClassifier进行knn搭建,当调KNeighborsClassifier对训练集数据进行训练时(代码如下所示)

# 模型训练和测试
knn_clf = KNeighborsClassifier(n_neighbors=5)
knn_clf.fit(X_train,y_train)

pycharm出现下面的报错信息,

DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().
  return self._fit(X, y)

问题所在

正如pycharm中报错信息所示那样,错误的原因是程序需要一维数组,但是却传递给它了列向量,所以需要将传递的列向量数据进行维度变化,pycharm中提示使用ravel()函数实现该操作。
ravel()函数的主要作用就是将数组的维度拉成一维数组。

解决方法

解决该问题的主要方法就是调用ravel()函数将y_train拉成一维数组,代码如下所示:

# 模型训练和测试
knn_clf = KNeighborsClassifier(n_neighbors=5)
knn_clf.fit(X_train,y_train.ravel())
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值