Как настроить эту модель xgboost

Как мне настроить это так, чтобы я мог лучше предсказывать? Я не знаю как чтобы сделать модель лучше. Мы будем благодарны за любое понимание. Спасибо тонна.

В основном я имел в виду предсказать остроту зрения с наилучшей коррекцией (BCVA 0,1 с 0 = зрение 20/20, 1 = хуже 20/20).

Лиянь

#preparing data
library(xgboost)
train <- read_sas("Rtrain2.sas7bdat",NULL)
test <- read_sas("Rtest2.sas7bdat",NULL)
labels <- train$bcva01 
test_label <- test$bcva01

#outcome variable
drops <- c("bcva01")
x<-train[ , !(names(train) %in% drops)]
x_test<-test[ , !(names(test) %in% drops)]

new_tr <- model.matrix(~.+0,data = x) 
new_ts <- model.matrix(~.+0,data = x_test)

#preparing matrix 
dtrain <- xgb.DMatrix(data = new_tr,label = labels) 
dtest <- xgb.DMatrix(data = new_ts,label=test_label)


#parameters

?list
params <- list(booster = "gbtree", objective = "binary:logistic", eta=0.03, 
gamma=0, max_depth=6, 
           min_child_weight=1, subsample=1, colsample_bytree=1)


#Using the inbuilt xgb.cv function
xgbcv <- xgb.cv( params = params, data = dtrain, nrounds = 21, nfold = 5, 
showsd = T, stratified = T, print.every.n = 10, early.stop.round = 21, 
maximize = F)

min(xgbcv$test.error.mean) #inf

#first default - model training
xgb1 <- xgb.train (params = params, data = dtrain, nrounds = 21, watchlist = 
list(val=dtest,train=dtrain), 
               print.every.n = 10, early.stop.round = 21, maximize = F , 
eval_metric = "error")

#model prediction
xgbpred <- predict (xgb1,dtest)
cvAUC::AUC(predictions = xgbpred, labels = test[,"bcva01"]) #0.69 2018-10-25

Похоже, вам может потребоваться настроить некоторые параметры модели, такие как max_depth, min_child_weight и т. д.

konvas 25.10.2018 23:34

Спасибо Конвас. Я попробую эти

Liyan Liu 29.10.2018 19:53
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
611
1

Ответы 1

Есть несколько способов автоматической калибровки гиперпараметров:

  1. scikit-learn GridSearch здесь и здесь

  2. Hyperopt, который я использую, здесь с хорошим примером здесь и короткий пример того, как это сделать с xgboost

  3. Байесовская оптимизация на примере xgboost здесь

Все это техника нахождения некоего «минимума» в определенном «пространстве», где это определенное «пространство» - это «пространство поиска», которое вы определите для параметров вашего гиптера, а «минимум» - это ошибка модели, которую вы хотели бы исправить. уменьшать.

Тема довольно обширна, и вам есть что прочитать, или вы можете просто последовать нескольким примерам и реализовать это в своем коде.

Другие вопросы по теме