如何从 parsnip::nearest_neighbor() 中查看选定的 k
How do I see the selected k from parsnip::nearest_neighbor()
如果我使用 parsnip::nearest_neighbor()
拟合 k 最近邻模型,如果我不选择 k t具体怎么调?
我想弄清楚这里选择的 k 是什么:
the_model <- nearest_neighbor() %>%
set_engine("kknn") %>%
set_mode("classification")
the_workflow <-
workflow() %>%
add_recipe(the_recipe) %>%
add_model(the_model)
the_results <-
the_workflow %>%
fit_resamples(resamples = cv_folds,
metrics = metric_set(roc_auc),
control = control_resamples(save_pred = TRUE))
我知道如果我使用 nearest_neighbor(neighbors = tune())
我可以使用 select_best("roc_auc")
得到 k 但没有指定如何调整我得到结果但是 select_best()
不 return a k。它使用什么 k 值(您是如何得出答案的)?
如果您没有在 parsnip 中为模型规范指定参数,除非文档中另有说明,否则该值将由底层引擎实现中的默认值确定。
查看 nearest_neighbors()
的文档,然后转到 neighbors
下的 arguments
For kknn, a value of 5 is used if neighbors is not specified.
您还可以使用 {parsnip} 中的 translate()
函数来查看模型规范创建的代码
library(parsnip)
the_model <- nearest_neighbor() %>%
set_engine("kknn") %>%
set_mode("classification")
the_model %>%
translate()
#> K-Nearest Neighbor Model Specification (classification)
#>
#> Computational engine: kknn
#>
#> Model fit template:
#> kknn::train.kknn(formula = missing_arg(), data = missing_arg(),
#> ks = min_rows(5, data, 5))
我们看到 ks
设置为 min_rows(5, data, 5)
,如果我们在 nearest_neighbors()
中指定 neighbors
,该值将会改变
nearest_neighbor(neighbors = 25) %>%
set_engine("kknn") %>%
set_mode("classification") %>%
translate()
#> K-Nearest Neighbor Model Specification (classification)
#>
#> Main Arguments:
#> neighbors = 25
#>
#> Computational engine: kknn
#>
#> Model fit template:
#> kknn::train.kknn(formula = missing_arg(), data = missing_arg(),
#> ks = min_rows(25, data, 5))
如果我使用 parsnip::nearest_neighbor()
拟合 k 最近邻模型,如果我不选择 k t具体怎么调?
我想弄清楚这里选择的 k 是什么:
the_model <- nearest_neighbor() %>%
set_engine("kknn") %>%
set_mode("classification")
the_workflow <-
workflow() %>%
add_recipe(the_recipe) %>%
add_model(the_model)
the_results <-
the_workflow %>%
fit_resamples(resamples = cv_folds,
metrics = metric_set(roc_auc),
control = control_resamples(save_pred = TRUE))
我知道如果我使用 nearest_neighbor(neighbors = tune())
我可以使用 select_best("roc_auc")
得到 k 但没有指定如何调整我得到结果但是 select_best()
不 return a k。它使用什么 k 值(您是如何得出答案的)?
如果您没有在 parsnip 中为模型规范指定参数,除非文档中另有说明,否则该值将由底层引擎实现中的默认值确定。
查看 nearest_neighbors()
的文档,然后转到 neighbors
For kknn, a value of 5 is used if neighbors is not specified.
您还可以使用 {parsnip} 中的 translate()
函数来查看模型规范创建的代码
library(parsnip)
the_model <- nearest_neighbor() %>%
set_engine("kknn") %>%
set_mode("classification")
the_model %>%
translate()
#> K-Nearest Neighbor Model Specification (classification)
#>
#> Computational engine: kknn
#>
#> Model fit template:
#> kknn::train.kknn(formula = missing_arg(), data = missing_arg(),
#> ks = min_rows(5, data, 5))
我们看到 ks
设置为 min_rows(5, data, 5)
,如果我们在 nearest_neighbors()
中指定 neighbors
,该值将会改变
nearest_neighbor(neighbors = 25) %>%
set_engine("kknn") %>%
set_mode("classification") %>%
translate()
#> K-Nearest Neighbor Model Specification (classification)
#>
#> Main Arguments:
#> neighbors = 25
#>
#> Computational engine: kknn
#>
#> Model fit template:
#> kknn::train.kknn(formula = missing_arg(), data = missing_arg(),
#> ks = min_rows(25, data, 5))