查看 tidymodel 工作流程中最近的邻居

问题描述 投票:0回答:1

我有一个类似的问题:如何查看R中的最近邻居?

代码示例:

library(tidymodels)

knn_rec <- recipe(Species ~ ., data = iris)

knn_lookup <- workflow() %>%
  add_model(nearest_neighbor(neighbors = 3) %>%
    set_engine("kknn") %>% 
    set_mode("classification")) %>%
  add_recipe(knn_rec) %>%
  fit(data = iris)

knn_pred <- predict(knn_lookup , new_data = iris[1,1:4], type = "raw")

如何追踪哪些行被识别为最近的 3 个邻居?我更喜欢 tidyverse 中像 tidy() 这样简单的东西。

r nearest-neighbor tidymodels
1个回答
0
投票

在你的问题中,你提到使用

tidy()
,它来自 broom 包,是的,对于总结模型的结果很有用,这是使用 tidyverse 的一种不太复杂的方法。

使用 kknn,您必须将模型拟合到训练数据中:

例如:

knn_fit <- fit(knn_spec, mpg ~ ., data = train_data)

现在提取特定观察的最近邻居,直接使用 kknn::kknn() 函数。

对于新的观察,请执行以下操作:

#example
new_observation <- data.frame(cyl = 6, disp = 160, hp = 110, drat = 3.9, wt = 2.62, qsec = 16.46, vs = 0, am = 1, gear = 4, carb = 4)

neighbors <- kknn::kknn(mpg ~ ., train_data, new_observation, k = 5, distance = 2)  # i used minkowski distances
print(neighbors)

输出会向您显示最近的邻居及其预测值。

如果需要,kknn 有自己的文档。

© www.soinside.com 2019 - 2024. All rights reserved.