Python 2.7 python中的K-最近邻

Python 2.7 python中的K-最近邻,python-2.7,machine-learning,knn,Python 2.7,Machine Learning,Knn,我的数据包含一个维度和一个类标签。我想在上面运行KNN 我的数据是这样的 feature Label 0.70436073 1 0.91564351 1 0.9931506 1 2.26418779 0 我做了下面的操作,结果出错了。我从错误中了解到,无法识别列车的数据类型,但我不知道如何修复它。请帮忙 >>> train = [ 0.70436073, 0.91564351, 0.9931506, 2.26418

我的数据包含一个维度和一个类标签。我想在上面运行KNN

我的数据是这样的

feature       Label
0.70436073      1
0.91564351      1
0.9931506       1
2.26418779      0
我做了下面的操作,结果出错了。我从错误中了解到,无法识别列车的数据类型,但我不知道如何修复它。请帮忙

>>> train = [ 0.70436073,  0.91564351,  0.9931506,   2.26418779]
>>> train
[0.70436073, 0.91564351, 0.9931506, 2.26418779]
>>> label = ['1','1','1','0']
>>> from sklearn.neighbors import KNeighborsClassifier
>>> knn = KNeighborsClassifier()
>>> knn.fit(train, label)

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    knn.fit(train, label)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 586, in fit
    return self._fit(X)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 126, in _fit
    raise ValueError("data type not understood")
ValueError: data type not understood
列车=[0.70436073,0.91564351,0.9931506,2.26418779] >>>训练 [0.70436073, 0.91564351, 0.9931506, 2.26418779] >>>标签=['1'、'1'、'1'、'0'] >>>从sklearn.neighbors导入KNeighborsClassifier >>>knn=KNeighborsClassifier() >>>knn.配合(列车、标签) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 knn.配合(列车、标签) 文件“C:\Python27\lib\site packages\sklearn\neights\base.py”,第586行,在fit中 返回自适配(X) 文件“C:\Python27\lib\site packages\sklearn\neights\base.py”,第126行,在_-fit中 raise VALUERROR(“数据类型未理解”) ValueError:无法理解数据类型
这个错误消息很糟糕,你应该给那些家伙发邮件,让他们修复它,但无论如何。。。上的示例非常清楚:fit()的第一个参数是列表列表,而不是数字列表。此外,第二个参数必须是“整数值数组”,但您已经编写了一个字符串数组。

首先需要使用
np.array
将列表转换为数组。然后重塑阵列,因为数据只有一个特征。请遵循以下代码:

import numpy as np
train = np.array([[ 0.70436073,  0.91564351,  0.9931506,   2.26418779]])
train_1 = train.reshape(-1, 1)
label = np.array([['1','1','1','0']])
label_1 = label.reshape(-1,1)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(train_1, label_1)

谢谢,现在我明白了<代码>>>序列=[[0.7043607250604991],[0.9156435124135893],[0.9931506043228762],[2.264187785208016]>标签=[1,1,1,0]
>从sklearn.com导入Kneighbors分类器
>knn=Kneighbors分类器()
>knn.fit(序列,标签)
但是我们在哪里指定算法要使用的距离度量呢?我不知道你的意思,因为我对算法完全不熟悉,但是你读过我链接的文档吗?它讲了很多关于距离的内容……如果你需要更多的文档,我建议你阅读源代码:Ac根据python…在脚本顶部导入语句。下次像现在一样编写或发布代码时请记住这一点。或者,您可以在def(顶部)中包含导入语句。