Как отобразить наиболее подходящее имя автомобиля и значение сходства косинусов и отобразить их в двух отдельных столбцах?(необходимо извлечь второе по величине значение) - PullRequest
0 голосов
/ 15 мая 2018

Я использую данные mtcars для расчета косинусного сходства между каждой парой автомобилей. Есть 11 переменных и 32 наблюдения. Я создал матрицу для хранения результатов расчета, но не знаю, как найти наиболее похожий автомобиль (только один в порядке) для каждого.

Как отобразить наиболее подходящее название автомобиля и значение сходства в двух отдельных столбцах? (Мне действительно нужно извлечь второе по величине значение, так как максимальное значение 1.0 соответствует автомобилю.) спасибо

Моя матрица показывает так: 3,1 и я хочу, чтобы результат выглядел так 3,2

1 Ответ

0 голосов
/ 15 мая 2018

Это должно сработать:

data <- matrix(rbinom(40, 20, 0.5), 8, 8)
rownames(data) <- LETTERS[1:8]
m <- apply(data, 2, max)
wm <- apply(data, 2, which.max)
data[cbind(wm, 1:nrow(data))]
out <- data.frame(Cars = rownames(data), 
  Most_Simiar = rownames(data[wm,],), 
  Cosine_Similarity = m)

Вам нужно будет перекодировать 1 в 0, поэтому сделайте что-то вроде этого:

data[which(data == 1, arr.ind = TRUE)] <- 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...