首页 > 解决方案 > 如何用 R 中的曼哈顿距离计算 kNN?

问题描述

在程序中距离是欧几里得(默认情况下)。如何将其更改为曼哈顿?

代码:

wdbc <- read.table(file.choose(), sep=",") 
View(wdbc) 
wdbc <- wdbc[, -1]
data_norm <- function(x) {((x - min(x))/ (max(x)- min(x)))} 
wdbc_norm <- as.data.frame(lapply(wdbc[, -1], data_norm))
summary(wdbc[,2:5]) 
summary(wdbc_norm[,1:4]) wdbc_train <- wdbc_norm[1:450,]
wdbc_test <- wdbc_norm[451:569,]
library(class)
wdbc_pred <- knn(wdbc_train, wdbc_test, wdbc[1:450, 1], k=21)
table(wdbc_pred, wdbc[451:569,1]) 
library(knnGarden)
wdbc_pred <- knn(wdbc_train, wdbc_test, wdbc[1:450, 1], k=21)
table(wdbc_pred, wdbc[451:569,1]) 

标签: rdistanceknneuclidean-distanceedit-distance

解决方案


推荐阅读