将model $ finalModel $ formula应用于新模型?

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

我使用插入符号和逐步回归使用一小部分数据样本试验了3个不同模型的数据样本。基于prAUC,我可以看到哪种模型表现最佳。

我想根据这些逐步模型之一选择的特征,在具有更大样本的模型上选择要使用的特征。

我可以看到最终选择的功能使用:

> formula(step_both_model$finalModel)
.outcome ~ tenure_months + auto_renewal_flag + v_count_ventures + 
    v_count_hosting_top_ten_competitor + v_count_hosting_long_tail_competitor + 
    v_count_domains + v_count_email + v_count_ssl + v_count_no_hosting_detected + 
    v_change_external_mail_petal_count + product_pnl_line_nameCnP.Hosting + 
    product_pnl_line_nameGrid + product_pnl_line_namePaid.Support + 
    product_pnl_line_nameShared.Hosting + product_pnl_line_nameWordpress + 
    shopper_region_1_nameAPAC + shopper_region_1_nameCanada + 
    shopper_region_1_nameEMEA + shopper_region_1_nameLatAm + 
    shopper_region_1_nameOthers + usa_tenure
<environment: 0xb77b818>

我的问题是,有没有一种方法可以提取r模型的预测器特征名称以用于另一个模型,而不是手动剪切和粘贴此功能列表?

尝试:

model$finalModel$terms
.outcome ~ tenure_months + auto_renewal_flag + v_count_ventures + 
    v_count_hosting_top_ten_competitor + v_count_hosting_long_tail_competitor + 
    v_count_domains + v_count_email + v_count_ssl + v_count_no_hosting_detected + 
    v_change_external_mail_petal_count + product_pnl_line_nameCnP.Hosting + 
    product_pnl_line_nameGrid + product_pnl_line_namePaid.Support + 
    product_pnl_line_nameShared.Hosting + product_pnl_line_nameWordpress + 
    shopper_region_1_nameAPAC + shopper_region_1_nameCanada + 
    shopper_region_1_nameEMEA + shopper_region_1_nameLatAm + 
    shopper_region_1_nameOthers + usa_tenure
attr(,"variables")
list(.outcome, tenure_months, auto_renewal_flag, v_count_ventures, 
    v_count_hosting_top_ten_competitor, v_count_hosting_long_tail_competitor, 
    v_count_domains, v_count_email, v_count_ssl, v_count_no_hosting_detected, 
    v_change_external_mail_petal_count, product_pnl_line_nameCnP.Hosting, 
    product_pnl_line_nameGrid, product_pnl_line_namePaid.Support, 
    product_pnl_line_nameShared.Hosting, product_pnl_line_nameWordpress, 
    shopper_region_1_nameAPAC, shopper_region_1_nameCanada, shopper_region_1_nameEMEA, 
    shopper_region_1_nameLatAm, shopper_region_1_nameOthers, 
    usa_tenure)
attr(,"factors")
                                     tenure_months auto_renewal_flag v_count_ventures
.outcome                                         0                 0                0
tenure_months                                    1                 0                0
auto_renewal_flag                                0                 1                0
v_count_ventures                                 0                 0                1
v_count_hosting_top_ten_competitor               0                 0                0
v_count_hosting_long_tail_competitor             0                 0                0
v_count_domains                                  0                 0                0
v_count_email                                    0                 0                0
v_count_ssl                                      0                 0                0
v_count_no_hosting_detected                      0                 0                0
v_change_external_mail_petal_count               0                 0                0
product_pnl_line_nameCnP.Hosting                 0                 0                0
product_pnl_line_nameGrid                        0                 0                0
product_pnl_line_namePaid.Support                0                 0                0
product_pnl_line_nameShared.Hosting              0                 0                0
product_pnl_line_nameWordpress                   0                 0                0
shopper_region_1_nameAPAC                        0                 0                0
shopper_region_1_nameCanada                      0                 0                0
shopper_region_1_nameEMEA                        0                 0                0
shopper_region_1_nameLatAm                       0                 0                0
shopper_region_1_nameOthers                      0                 0                0
usa_tenure                                       0                 0                0
                                     v_count_hosting_top_ten_competitor v_count_hosting_long_tail_competitor
.outcome                                                              0                                    0
tenure_months                                                         0                                    0
auto_renewal_flag                                                     0                                    0
v_count_ventures                                                      0                                    0
v_count_hosting_top_ten_competitor                                    1                                    0
v_count_hosting_long_tail_competitor                                  0                                    1
v_count_domains                                                       0                                    0
v_count_email                                                         0                                    0
v_count_ssl                                                           0                                    0
v_count_no_hosting_detected                                           0                                    0
v_change_external_mail_petal_count                                    0                                    0
product_pnl_line_nameCnP.Hosting                                      0                                    0
product_pnl_line_nameGrid                                             0                                    0
product_pnl_line_namePaid.Support                                     0                                    0
product_pnl_line_nameShared.Hosting                                   0                                    0
product_pnl_line_nameWordpress                                        0                                    0
shopper_region_1_nameAPAC                                             0                                    0
shopper_region_1_nameCanada                                           0                                    0
shopper_region_1_nameEMEA                                             0                                    0
shopper_region_1_nameLatAm                                            0                                    0
shopper_region_1_nameOthers                                           0                                    0
usa_tenure                                                            0                                    0

这提供了大量信息,但我看不出如何只提取用作预测变量的特征名称,以便我可以在新模型上使用这些特征名称(使用更大的数据样本)

如何提取模型特征名称以便例如根据要素名称过滤数据框,然后传递到train()

r r-caret
1个回答
1
投票

也许用

update(formula(model$finalModel), newVariable ~ .)
# newVariable ~ crim + zn + chas1 + nox + rm + dis + rad + tax + 
#     ptratio + b + lstat + `rm:lstat`
# <environment: 0x119e6c6a8>

给你想要的更快。要获得右手边,你可以使用

formula(model$finalModel)[[3]]
# crim + zn + chas1 + nox + rm + dis + rad + tax + ptratio + b + 
#     lstat + `rm:lstat`

虽然可以将预测变量提取为字符向量

attr(terms(formula(model$finalModel)), "term.labels")
#  [1] "crim"       "zn"         "chas1"      "nox"        "rm"         "dis"       
#  [7] "rad"        "tax"        "ptratio"    "b"          "lstat"      "`rm:lstat`"
© www.soinside.com 2019 - 2024. All rights reserved.