为什么我在使用支持向量机的 varImp() 时出现错误?

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

我正在尝试在 R 中输出支持向量机二元分类模型的变量重要性,但它不断产生错误。

我在 Iris 数据集上尝试了相同的代码,它按预期工作。但是,当我尝试使用自己的数据集修改模型的代码时,会产生错误。模型创建效果很好;但是,当我尝试输出变量重要性时,会出现错误。

我正在使用以下数据集:

titanic <- structure(list(PassengerId = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 
59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 
76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 
106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 
119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 
132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 
145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 
158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 
171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 
184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 
197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 
210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 
223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 
236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 
249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 
262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 
288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 
301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 
314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 
327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 
340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 
353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 
366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 
379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 
392, 393, 394, 395, 396, 397, 398, 399, 400, 401), Survived = c(0, 
1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 
1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 
1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 
1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 
1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 
0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 
0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 
0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 
1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 
1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 
0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 
1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1
), Pclass = c(3, 1, 3, 1, 3, 3, 1, 3, 3, 2, 3, 1, 3, 3, 3, 2, 
3, 2, 3, 3, 2, 2, 3, 1, 3, 3, 3, 1, 3, 3, 1, 1, 3, 2, 1, 1, 3, 
3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 1, 1, 2, 3, 
2, 3, 3, 1, 3, 1, 3, 2, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 3, 2, 3, 
3, 3, 3, 1, 2, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, 3, 
3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 2, 1, 3, 2, 3, 
2, 2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 1, 3, 1, 3, 3, 3, 
3, 2, 2, 3, 3, 2, 2, 2, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 2, 3, 3, 
3, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1, 3, 3, 1, 2, 3, 3, 2, 3, 2, 3, 
1, 3, 1, 3, 3, 2, 2, 3, 2, 1, 1, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 1, 3, 2, 3, 2, 3, 1, 3, 2, 1, 2, 3, 2, 3, 3, 1, 3, 2, 
3, 2, 3, 1, 3, 2, 3, 2, 3, 2, 2, 2, 2, 3, 3, 2, 3, 3, 1, 3, 2, 
1, 2, 3, 3, 1, 3, 3, 3, 1, 1, 1, 2, 3, 3, 1, 1, 3, 2, 3, 3, 1, 
1, 1, 3, 2, 1, 3, 1, 3, 2, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 2, 3, 
1, 1, 2, 3, 3, 1, 3, 1, 1, 1, 3, 3, 3, 2, 3, 1, 1, 1, 2, 1, 1, 
1, 2, 3, 2, 3, 2, 2, 1, 1, 3, 3, 2, 2, 3, 1, 3, 2, 3, 1, 3, 1, 
1, 3, 1, 3, 1, 1, 3, 1, 2, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 1, 3, 
3, 3, 3, 1, 2, 3, 3, 3, 2, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 1, 
3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 3, 2, 3, 2, 3, 2, 1, 3, 3, 1, 3, 
3, 3, 2, 2, 2, 3), Sex = c("Male", "female", "female", "female", 
"Male", "Male", "Male", "Male", "female", "female", "female", 
"female", "Male", "Male", "female", "female", "Male", "Male", 
"female", "female", "Male", "Male", "female", "Male", "female", 
"female", "Male", "Male", "female", "Male", "Male", "female", 
"female", "Male", "Male", "Male", "Male", "Male", "female", "female", 
"female", "female", "Male", "female", "female", "Male", "Male", 
"female", "Male", "female", "Male", "Male", "female", "female", 
"Male", "Male", "female", "Male", "female", "Male", "Male", "Male", 
"Male", "Male", "Male", "female", "Male", "female", "Male", "Male", 
"female", "Male", "Male", "Male", "Male", "Male", "Male", "Male", 
"female", "Male", "Male", "female", "Male", "female", "female", 
"Male", "Male", "female", "Male", "Male", "Male", "Male", "Male", 
"Male", "Male", "Male", "Male", "female", "Male", "female", "Male", 
"Male", "Male", "Male", "Male", "female", "Male", "Male", "female", 
"Male", "female", "Male", "female", "female", "Male", "Male", 
"Male", "Male", "female", "Male", "Male", "Male", "female", "Male", 
"Male", "Male", "Male", "female", "Male", "Male", "Male", "female", 
"female", "Male", "Male", "female", "Male", "Male", "Male", "female", 
"female", "female", "Male", "Male", "Male", "Male", "female", 
"Male", "Male", "Male", "female", "Male", "Male", "Male", "Male", 
"female", "Male", "Male", "Male", "Male", "female", "Male", "Male", 
"Male", "Male", "female", "female", "Male", "Male", "Male", "Male", 
"female", "Male", "Male", "Male", "Male", "female", "Male", "Male", 
"female", "Male", "Male", "Male", "female", "Male", "female", 
"Male", "Male", "Male", "female", "Male", "female", "Male", "female", 
"female", "Male", "Male", "female", "female", "Male", "Male", 
"Male", "Male", "Male", "female", "Male", "Male", "female", "Male", 
"Male", "female", "Male", "Male", "Male", "female", "female", 
"Male", "female", "Male", "Male", "Male", "Male", "Male", "Male", 
"Male", "Male", "Male", "Male", "female", "female", "Male", "Male", 
"female", "Male", "female", "Male", "female", "Male", "Male", 
"female", "female", "Male", "Male", "Male", "Male", "female", 
"female", "Male", "Male", "Male", "female", "Male", "Male", "female", 
"female", "female", "female", "female", "female", "Male", "Male", 
"Male", "Male", "female", "Male", "Male", "Male", "female", "female", 
"Male", "Male", "female", "Male", "female", "female", "female", 
"Male", "Male", "female", "Male", "Male", "Male", "Male", "Male", 
"Male", "Male", "Male", "Male", "female", "female", "female", 
"Male", "female", "Male", "Male", "Male", "female", "Male", "female", 
"female", "Male", "Male", "female", "Male", "Male", "female", 
"female", "Male", "female", "female", "female", "female", "Male", 
"Male", "female", "female", "Male", "female", "female", "Male", 
"Male", "female", "female", "Male", "female", "Male", "female", 
"female", "female", "female", "Male", "Male", "Male", "female", 
"Male", "Male", "female", "Male", "Male", "Male", "female", "Male", 
"Male", "Male", "female", "female", "female", "Male", "Male", 
"Male", "Male", "Male", "Male", "Male", "Male", "female", "female", 
"female", "female", "Male", "Male", "female", "Male", "Male", 
"Male", "female", "female", "female", "female", "Male", "Male", 
"Male", "Male", "female", "female", "female", "Male", "Male", 
"Male", "female", "female", "Male", "female", "Male", "Male", 
"Male", "female", "Male", "female", "Male", "Male", "Male", "female", 
"female", "Male", "female", "Male", "Male", "female", "Male"), 
    Age = c(22, 38, 26, 35, 35, 60, 54, 2, 27, 14, 4, 58, 20, 
    39, 14, 55, 2, 60, 31, 60, 35, 34, 15, 28, 8, 38, 60, 19, 
    60, 60, 40, 60, 60, 66, 28, 42, 60, 21, 18, 14, 40, 27, 60, 
    3, 19, 60, 60, 60, 60, 18, 7, 21, 49, 29, 65, 60, 21, 28.5, 
    5, 11, 22, 45, 4, 60, 60, 29, 19, 17, 26, 32, 16, 21, 26, 
    32, 25, 60, 60, 0.83, 30, 22, 29, 60, 28, 17, 33, 16, 60, 
    23, 24, 29, 20, 46, 26, 59, 60, 71, 23, 34, 34, 28, 60, 21, 
    33, 37, 28, 21, 60, 38, 60, 47, 14.5, 22, 20, 17, 21, 70.5, 
    29, 24, 2, 21, 60, 32.5, 32.5, 54, 12, 60, 24, 60, 45, 33, 
    20, 47, 29, 25, 23, 19, 37, 16, 24, 60, 22, 24, 19, 18, 19, 
    27, 9, 36.5, 42, 51, 22, 55.5, 40.5, 60, 51, 16, 30, 60, 
    60, 44, 40, 26, 17, 1, 9, 60, 45, 60, 28, 61, 4, 1, 21, 56, 
    18, 60, 50, 30, 36, 60, 60, 9, 1, 4, 60, 60, 45, 40, 36, 
    32, 19, 19, 3, 44, 58, 60, 42, 60, 24, 28, 60, 34, 45.5, 
    18, 2, 32, 26, 16, 40, 24, 35, 22, 30, 60, 31, 27, 42, 32, 
    30, 16, 27, 51, 60, 38, 22, 19, 20.5, 18, 60, 35, 29, 59, 
    5, 24, 60, 44, 8, 19, 33, 60, 60, 29, 22, 30, 44, 25, 24, 
    37, 54, 60, 29, 62, 30, 41, 29, 60, 30, 35, 50, 60, 3, 52, 
    40, 60, 36, 16, 25, 58, 35, 60, 25, 41, 37, 60, 63, 45, 60, 
    7, 35, 65, 28, 16, 19, 60, 33, 30, 22, 42, 22, 26, 19, 36, 
    24, 24, 60, 23.5, 2, 60, 50, 60, 60, 19, 60, 60, 0.92, 60, 
    17, 30, 30, 24, 18, 26, 28, 43, 26, 24, 54, 31, 40, 22, 27, 
    30, 22, 60, 36, 61, 36, 31, 16, 60, 45.5, 38, 16, 60, 60, 
    29, 41, 45, 45, 2, 24, 28, 25, 36, 24, 40, 60, 3, 42, 23, 
    60, 15, 25, 60, 28, 22, 38, 60, 60, 40, 29, 45, 35, 60, 30, 
    60, 60, 60, 24, 25, 18, 19, 22, 3, 60, 22, 27, 20, 19, 42, 
    1, 32, 35, 60, 18, 1, 36, 60, 17, 36, 21, 28, 23, 24, 22, 
    31, 46, 23, 28, 39), SibSp = c(1, 1, 0, 1, 0, 0, 0, 3, 0, 
    1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 3, 1, 0, 3, 
    0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 1, 1, 0, 1, 0, 0, 1, 
    0, 2, 1, 4, 0, 1, 1, 0, 0, 0, 0, 1, 5, 0, 1, 3, 0, 1, 0, 
    0, 4, 2, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 
    1, 0, 3, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 
    0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 4, 2, 0, 1, 0, 
    0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 
    0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 
    0, 0, 4, 0, 0, 1, 0, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 8, 
    0, 4, 2, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 
    0, 8, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 
    0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 1, 0, 0, 4, 0, 0, 1, 0, 
    0, 0, 1, 1, 0, 0, 0, 2, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 
    0, 0, 0, 0, 4, 1, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 
    0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 
    0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, 
    1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0, 0, 1, 0, 2, 0, 0, 
    2, 1, 0, 1, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
    1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 
    1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 0, 0, 0, 
    1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0), Parch = c(0, 0, 0, 0, 0, 
    0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
    1, 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 2, 0, 0, 
    2, 0, 1, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 
    0, 0, 0, 0, 3, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 0, 0, 
    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 
    0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 
    0, 2, 0, 0, 0, 0, 1, 0, 2, 2, 0, 0, 0, 0, 2, 0, 1, 0, 0, 
    0, 2, 1, 0, 0, 0, 1, 2, 1, 4, 0, 0, 0, 1, 1, 0, 0, 1, 1, 
    0, 0, 0, 2, 0, 2, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
    0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 
    0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 1, 0, 
    0, 2, 2, 0, 0, 0, 1, 0, 2, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 
    1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 
    0, 2, 1, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 1, 2, 0, 0, 0, 1, 
    1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 
    1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 
    2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0), Fare = c(7.25, 
    71.2833, 7.925, 53.1, 8.05, 8.4583, 51.8625, 21.075, 11.1333, 
    30.0708, 16.7, 26.55, 8.05, 31.275, 7.8542, 16, 29.125, 13, 
    18, 7.225, 26, 13, 8.0292, 35.5, 21.075, 31.3875, 7.225, 
    263, 7.8792, 7.8958, 27.7208, 146.5208, 7.75, 10.5, 82.1708, 
    52, 7.2292, 8.05, 18, 11.2417, 9.475, 21, 7.8958, 41.5792, 
    7.8792, 8.05, 15.5, 7.75, 21.6792, 17.8, 39.6875, 7.8, 76.7292, 
    26, 61.9792, 35.5, 10.5, 7.2292, 27.75, 46.9, 7.2292, 83.475, 
    27.9, 27.7208, 15.2458, 10.5, 8.1583, 7.925, 8.6625, 10.5, 
    46.9, 73.5, 14.4542, 56.4958, 7.65, 7.8958, 8.05, 29, 12.475, 
    9, 9.5, 7.7875, 47.1, 10.5, 15.85, 34.375, 8.05, 263, 8.05, 
    8.05, 7.8542, 61.175, 20.575, 7.25, 8.05, 34.6542, 63.3583, 
    23, 26, 7.8958, 7.8958, 77.2875, 8.6542, 7.925, 7.8958, 7.65, 
    7.775, 7.8958, 24.15, 52, 14.4542, 8.05, 9.825, 14.4583, 
    7.925, 7.75, 21, 247.5208, 31.275, 73.5, 8.05, 30.0708, 13, 
    77.2875, 11.2417, 7.75, 7.1417, 22.3583, 6.975, 7.8958, 7.05, 
    14.5, 26, 13, 15.0458, 26.2833, 53.1, 9.2167, 79.2, 15.2458, 
    7.75, 15.85, 6.75, 11.5, 36.75, 7.7958, 34.375, 26, 13, 12.525, 
    66.6, 8.05, 14.5, 7.3125, 61.3792, 7.7333, 8.05, 8.6625, 
    69.55, 16.1, 15.75, 7.775, 8.6625, 39.6875, 20.525, 55, 27.9, 
    25.925, 56.4958, 33.5, 29.125, 11.1333, 7.925, 30.6958, 7.8542, 
    25.4667, 28.7125, 13, 0, 69.55, 15.05, 31.3875, 39, 22.025, 
    50, 15.5, 26.55, 15.5, 7.8958, 13, 13, 7.8542, 26, 27.7208, 
    146.5208, 7.75, 8.4042, 7.75, 13, 9.5, 69.55, 6.4958, 7.225, 
    8.05, 10.4625, 15.85, 18.7875, 7.75, 31, 7.05, 21, 7.25, 
    13, 7.75, 113.275, 7.925, 27, 76.2917, 10.5, 8.05, 13, 8.05, 
    7.8958, 90, 9.35, 10.5, 7.25, 13, 25.4667, 83.475, 7.775, 
    13.5, 31.3875, 10.5, 7.55, 26, 26.25, 10.5, 12.275, 14.4542, 
    15.5, 10.5, 7.125, 7.225, 90, 7.775, 14.5, 52.5542, 26, 7.25, 
    10.4625, 26.55, 16.1, 20.2125, 15.2458, 79.2, 86.5, 512.3292, 
    26, 7.75, 31.3875, 79.65, 0, 7.75, 10.5, 39.6875, 7.775, 
    153.4625, 135.6333, 31, 0, 19.5, 29.7, 7.75, 77.9583, 7.75, 
    0, 29.125, 20.25, 7.75, 7.8542, 9.5, 8.05, 26, 8.6625, 9.5, 
    7.8958, 13, 7.75, 78.85, 91.0792, 12.875, 8.85, 7.8958, 27.7208, 
    7.2292, 151.55, 30.5, 247.5208, 7.75, 23.25, 0, 12.35, 8.05, 
    151.55, 110.8833, 108.9, 24, 56.9292, 83.1583, 262.375, 26, 
    7.8958, 26.25, 7.8542, 26, 14, 164.8667, 134.5, 7.25, 7.8958, 
    12.35, 29, 69.55, 135.6333, 6.2375, 13, 20.525, 57.9792, 
    23.25, 28.5, 153.4625, 18, 133.65, 7.8958, 66.6, 134.5, 8.05, 
    35.5, 26, 263, 13, 13, 13, 13, 13, 16.1, 15.9, 8.6625, 9.225, 
    35, 7.2292, 17.8, 7.225, 9.5, 55, 13, 7.8792, 7.8792, 27.9, 
    27.7208, 14.4542, 7.05, 15.5, 7.25, 75.25, 7.2292, 7.75, 
    69.3, 55.4417, 6.4958, 8.05, 135.6333, 21.075, 82.1708, 7.25, 
    211.5, 4.0125, 7.775, 227.525, 15.7417, 7.925, 52, 7.8958, 
    73.5, 46.9, 13, 7.7292, 12, 120, 7.7958, 7.925, 113.275, 
    16.7, 7.7958, 7.8542, 26, 10.5, 12.65, 7.925), Embarked = c(3, 
    1, 3, 3, 3, 2, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 2, 3, 3, 1, 
    3, 3, 2, 3, 3, 3, 1, 3, 2, 3, 1, 1, 2, 3, 1, 3, 1, 3, 3, 
    1, 3, 3, 1, 1, 2, 3, 2, 2, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1, 
    3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 
    3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 
    1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 1, 3, 3, 1, 3, 
    2, 3, 1, 3, 3, 3, 1, 3, 3, 1, 2, 3, 1, 3, 1, 3, 3, 3, 3, 
    1, 3, 3, 3, 1, 1, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 
    3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 2, 3, 2, 3, 3, 3, 
    3, 3, 1, 1, 2, 3, 2, 3, 3, 3, 3, 1, 3, 3, 3, 1, 2, 1, 3, 
    3, 3, 3, 2, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 1, 1, 3, 1, 3, 2, 3, 3, 3, 2, 3, 3, 3, 
    3, 3, 3, 3, 3, 1, 2, 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, 1, 3, 
    3, 3, 2, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 2, 2, 3, 2, 3, 3, 
    1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 2, 3, 3, 
    1, 3, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 
    3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 2, 2, 3, 1, 1, 
    3, 2, 3, 1, 1, 2, 1, 1, 3, 3, 1, 3, 1, 3, 1, 1, 3, 1, 1, 
    3, 3, 3, 3, 3, 3, 2, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3)), row.names = c(NA, 
-400L), class = c("tbl_df", "tbl", "data.frame"))

这是我尝试过的代码:

library(caret)
library(tidyverse)

trctrl <- trainControl(method = "cv", number = 10, savePredictions=TRUE)

svm <- train(as.factor(Survived)~., data = titanic, method ="svmLinear",  trControl=trctrl)

varImp(svm)

分配

svm
的行工作正常,但
varImp(svm)
行会产生以下错误消息:

Error in regMod$residuals : $ operator is invalid for atomic vectors
In addition: Warning message:
In mean.default(y, rm.na = TRUE) :
  argument is not numeric or logical: returning NA

如何解决此问题并输出泰坦尼克号数据集的变量重要性表?

r machine-learning svm r-caret
2个回答
0
投票

如果您查看

caret
中使用
methods(varImp)
计算变量重要性的可用方法,您会发现没有函数
varImp.svm
。没有直接的方法来获取 SVM 的此类信息。您可能可以使用手动方法来计算等效值,例如通过使用每种预测变量组合构建模型并比较性能。请参阅交叉验证上的这篇文章:

https://stats.stackexchange.com/questions/66239/variable-importance-for-svm-regression-and-averged-neural-networks


0
投票

您可以使用

vi_permute
包中的
vip
来计算

library(vip)
library(caret)
library(tidyverse)

df <- titanic %>% 
  mutate(Survived = as.factor(ifelse(Survived == 1,"Yes","No"))) %>% 
  as.data.frame() %>% 
  subset(select = -PassengerId)

trctrl <- trainControl(method = "cv", number = 10, savePredictions=TRUE, 
                       classProbs=T)

set.seed(7)
svm <- caret::train(Survived~., data = df, 
                    method ="svmLinear",  trControl=trctrl)

# Define prediction wrapper for predicting class labels from a "train" object
pfun <- function(object, newdata) {
  # Need vector of predicted class probabilities when using  log-loss metric
  predict(object, newdata = newdata, type = "prob")[,"Yes"]
}

set.seed(1413)  # for reproducibility
vip(svm,
  method = "permute", nsim = 5,
  target = "Survived", metric = "roc_auc",
  event_level = "second",  # use "Yes" as class label/"event" of interest
  pred_wrapper = pfun, 
  train = df
)

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