Я установил модель и хочу взглянуть (и построить график) на частичные зависимости.Для этой задачи я использую пакет mlr
.Тем не менее, поскольку у меня есть 80 функций, я хочу посмотреть только те, которые оказывают наибольшее влияние на целевую переменную.Можно ли рассчитать или показать частичную зависимость только для объектов с наибольшим влиянием?
Вот пример: я только что установил 4 значения.Давайте предположим, что я только хочу посмотреть или рассчитать частичную зависимость для 2 наиболее влиятельных особенностей.
library(mlr)
pd = generatePartialDependenceData(mod, train_task, c("diveyTrue", "dinnerTrue","BikeParkingTrue", "latenightTrue"))
pd
PartialDependenceData
Task: dat
Features: diveyTrue, dinnerTrue, BikeParkingTrue, latenightTrue
Target: diveyTrue, dinnerTrue, BikeParkingTrue, latenightTrue
Derivative: FALSE
Interaction: FALSE
Individual: FALSE
review_count diveyTrue dinnerTrue BikeParkingTrue latenightTrue
1: 73.92993 0.0000000 NA NA NA
2: 73.68386 0.1111111 NA NA NA
3: 73.68386 0.2222222 NA NA NA
4: 73.68386 0.3333333 NA NA NA
5: 73.68386 0.4444444 NA NA NA
6: 63.56335 0.5555556 NA NA NA
... (#rows: 40, #cols: 5)
Задача является регрессией, а первый столбец является целевой переменной.Все остальные переменные являются фиктивными.Поэтому целевая переменная остается постоянной до тех пор, пока значение «diveyTrue» не станет больше 0,5.
Вот маленький dput()
:
structure(list(data = structure(list(review_count = c(73.9299260484918,
73.6838552698629, 73.6838552698629, 73.6838552698629, 73.6838552698629,
63.5633491608329, 63.5633491608329, 63.5633491608329, 63.5633491608329,
63.5633491608329, 44.123492893074, 44.0855985404284, 44.0855985404284,
44.0855985404284, 44.0855985404284, 67.9185575263356, 67.9185575263356,
67.9185575263356, 67.9185575263356, 67.9185575263356, 64.1248331786005,
64.1243679505065, 64.1243679505065, 64.1243679505065, 64.1243679505065,
64.9177431842816, 64.9177431842816, 64.9177431842816, 64.9177431842816,
64.9177431842816, 58.2709529252224, 58.2709529252224, 58.2709529252224,
58.2709529252224, 58.2709529252224, 89.8281204749236, 89.8281204749236,
89.8281204749236, 89.8281204749236, 89.8281204749236), diveyTrue = c(0,
0.111111111111111, 0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778, 0.888888888888889,
1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA),
dinnerTrue = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0,
0.111111111111111, 0.222222222222222, 0.333333333333333,
0.444444444444444, 0.555555555555556, 0.666666666666667,
0.777777777777778, 0.888888888888889, 1, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), BikeParkingTrue = c(NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 0.111111111111111,
0.222222222222222, 0.333333333333333, 0.444444444444444,
0.555555555555556, 0.666666666666667, 0.777777777777778,
0.888888888888889, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA), latenightTrue = c(NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 0, 0.111111111111111, 0.222222222222222,
0.333333333333333, 0.444444444444444, 0.555555555555556,
0.666666666666667, 0.777777777777778, 0.888888888888889,
1)), row.names = c(NA, -40L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x0000000002521ef0>), task.desc = structure(list(
id = "dat", type = "regr", target = "review_count", size = 9943L,
n.feat = c(numerics = 79L, factors = 0L, ordered = 0L, functionals = 0L
), has.missings = TRUE, has.weights = FALSE, has.blocking = FALSE,
has.coordinates = FALSE), class = c("RegrTaskDesc", "SupervisedTaskDesc",
"TaskDesc")), target = c("diveyTrue", "dinnerTrue", "BikeParkingTrue",
"latenightTrue"), features = c("diveyTrue", "dinnerTrue", "BikeParkingTrue",
"latenightTrue"), derivative = FALSE, interaction = FALSE, individual = FALSE), class = "PartialDependenceData")