tidymodels
tidymodels
- MDP / DALEXDALEX 설치 후 install_dependencies()
함수로 관련 의존성을 모두 설치한다. modelStudio
는 기계학습 예측모형에 대한 탐색적 분석을 자동화할 수 있게 도와준다.
workflow
예측모형workflow
객체를 explainer
객체로 변환할 때 다음 오류로 윈도우에서는 동작이 제대로 되지 않고 있다.
Error in UseMethod(“explain”) :
no applicable method for ‘explain’ applied to an object of class “workflow”
# 데이터 가져오기
tuesdata <- tidytuesdayR::tt_load('2020-07-28')
# Basetable 준비
penguin_df <- tuesdata$penguins %>%
filter(!is.na(sex)) %>%
select(-year, -island) %>%
mutate_if(is.character, as.factor)
# 모형적합
glm_spec <- logistic_reg() %>%
set_mode("classification") %>%
set_engine("glm")
penguin_wf <- workflow() %>%
add_formula(sex ~ .) %>%
add_model(glm_spec)
penguin_fit <- fit(penguin_wf, penguin_df)
# 모형 설명
y_penguin <- as.numeric(penguin_df$sex)
explainer <- explain(penguin_fit,
data = penguin_df,
y = y_penguin,
label = "Penguin GLM")
modelStudio(explainer)
먼저 펭귄 성별 예측모형을 가져와서 정상 동작여부를 파악한다. 헬로우 월드를 던져본다. 맥에서는 잘됐는데 윈도우에서는 안된다.
parsnip
예측모형1
Downloading file 1 of 2: `penguins.csv`
Downloading file 2 of 2: `penguins_raw.csv`
# Basetable 준비
penguin_df <- tuesdata$penguins %>%
filter(!is.na(sex)) %>%
select(-year, -island) %>%
mutate_if(is.character, as.factor)
# 모형적합
penguin_fit <- rand_forest() %>%
set_mode("classification") %>%
set_engine("ranger") %>%
fit(sex ~ ., data = penguin_df)
# 모형 설명
custom_predict <- function(object, newdata) {
pred <- predict(object, newdata)
response <- pred$.pred
return(response)
}
y_penguin <- as.numeric(penguin_df$sex)
explainer <- DALEX::explain(penguin_fit,
data = penguin_df,
y = y_penguin)
Preparation of a new explainer is initiated
-> model label : model_fit ( [33m default [39m )
-> data : 333 rows 6 cols
-> data : tibbble converted into a data.frame
-> target variable : 333 values
-> predict function : yhat.model_fit will be used ( [33m default [39m )
-> predicted values : numerical, min = 0 , mean = 0.5029812 , max = 1
-> model_info : package parsnip , ver. 0.1.1 , task classification ( [33m default [39m )
-> residual function : difference between y and yhat ( [33m default [39m )
-> residuals : numerical, min = 0.296169 , mean = 1.001523 , max = 1.640322
[32m A new explainer has been created! [39m
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com