我对KNeighborsClassifier
这是我用于iris
数据集的代码。
iris = datasets.load_iris()
X = iris.data # Independent variables
y = iris.target # response or target or dependent variables
x_train, x_test, y_train,y_test = (train_test_split(X,y, test_size=0.3,
random_state=42,
stratify=y))
knn = KNeighborsClassifier(n_neighbors = 5)
knn.fit(x_train, y_train)
prediction = knn.predict(x_test)
print (accuracy_score(y_test, prediction))
所以我知道两点之间的距离是使用欧几里德距离计算的。
例如,火车虹膜数据集具有4个特征,而测试虹膜数据集也具有4个特征,那么如何计算这4个列值之间的欧式距离。假设这是我们的train
数据
array([[5.1, 2.5, 3. , 1.1],
[6.2, 2.2, 4.5, 1.5],
[5.1, 3.8, 1.5, 0.3],
[6.8, 3.2, 5.9, 2.3]]
这是我们的test
数据
array([[7.3, 2.9, 6.3, 1.8],
[6.1, 2.9, 4.7, 1.4],
[6.3, 2.8, 5.1, 1.5],
[6.3, 3.3, 4.7, 1.6]]
如何计算四个点的欧几里得距离?
答案 0 :(得分:3)
与在平面上的两个点或在3D空间中的3个点相同-但现在扩展到4维矢量空间:
sqrt((a1-b1)^2+(a2-b2)^2+(a3-b3)^2+(a4-b4)^2)
这可以扩展到任意数量的尺寸