library(fpp3)
library(tidyverse)
library(readxl)
library(rpart)
library(rpart.plot)
library(caret)
library(corrplot)
library(Metrics)
library(e1071)
library(reshape2)
library(Cubist)
library(earth)

Technical Report: ABC Beverage PH Prediction

This is the technical report for how I calculated the PH predictions for the AVB Beverage company. This report is complimentary to the non-technical report and will be providing details for each step.

Reading in the data

I started by reading in the data for both training the model and what we are going to be predicting against.

data <- read_excel("StudentData.xlsx")
eval <- read_excel("StudentEvaluation.xlsx")

print(head(data))
## # A tibble: 6 × 33
##   `Brand Code` `Carb Volume` `Fill Ounces` `PC Volume` `Carb Pressure`
##   <chr>                <dbl>         <dbl>       <dbl>           <dbl>
## 1 B                     5.34          24.0       0.263            68.2
## 2 A                     5.43          24.0       0.239            68.4
## 3 B                     5.29          24.1       0.263            70.8
## 4 A                     5.44          24.0       0.293            63  
## 5 A                     5.49          24.3       0.111            67.2
## 6 A                     5.38          23.9       0.269            66.6
## # ℹ 28 more variables: `Carb Temp` <dbl>, PSC <dbl>, `PSC Fill` <dbl>,
## #   `PSC CO2` <dbl>, `Mnf Flow` <dbl>, `Carb Pressure1` <dbl>,
## #   `Fill Pressure` <dbl>, `Hyd Pressure1` <dbl>, `Hyd Pressure2` <dbl>,
## #   `Hyd Pressure3` <dbl>, `Hyd Pressure4` <dbl>, `Filler Level` <dbl>,
## #   `Filler Speed` <dbl>, Temperature <dbl>, `Usage cont` <dbl>,
## #   `Carb Flow` <dbl>, Density <dbl>, MFR <dbl>, Balling <dbl>,
## #   `Pressure Vacuum` <dbl>, PH <dbl>, `Oxygen Filler` <dbl>, …
print(head(eval))
## # A tibble: 6 × 33
##   `Brand Code` `Carb Volume` `Fill Ounces` `PC Volume` `Carb Pressure`
##   <chr>                <dbl>         <dbl>       <dbl>           <dbl>
## 1 D                     5.48          24.0       0.27             65.4
## 2 A                     5.39          24.0       0.227            63.2
## 3 B                     5.29          23.9       0.303            66.4
## 4 B                     5.27          23.9       0.186            64.8
## 5 B                     5.41          24.2       0.16             69.4
## 6 B                     5.29          24.1       0.212            73.4
## # ℹ 28 more variables: `Carb Temp` <dbl>, PSC <dbl>, `PSC Fill` <dbl>,
## #   `PSC CO2` <dbl>, `Mnf Flow` <dbl>, `Carb Pressure1` <dbl>,
## #   `Fill Pressure` <dbl>, `Hyd Pressure1` <dbl>, `Hyd Pressure2` <dbl>,
## #   `Hyd Pressure3` <dbl>, `Hyd Pressure4` <dbl>, `Filler Level` <dbl>,
## #   `Filler Speed` <dbl>, Temperature <dbl>, `Usage cont` <dbl>,
## #   `Carb Flow` <dbl>, Density <dbl>, MFR <dbl>, Balling <dbl>,
## #   `Pressure Vacuum` <dbl>, PH <lgl>, `Oxygen Filler` <dbl>, …

EDA and Preprocessing

I decided that in this I would do the EDA and then preprocess the data as I came across anything that I found to be problematic.

Firstly, in order to use any of this we need to ensure that 1) every feature is in a numeric format so they can be used by every model, 2) we remove any features that don’t contribute meaningfully, whether they have little variance or they correlate heavily with other features, 3) make sure that there isn’t any missing data for any of the features by imputation.

To accomplish number 1 we just have to look at the first feature Brand Code and update that to be numeric. (In the real world, if I worked at this company I would know what all of these features mean or I would ask to ensure I have sufficient knowledge for this whole process. But alas this is not the real world so I will be making basic assumptions along the way to complete this assignment.) To update Brand Code to numeric we will just assign each code a numeric value assuming A = 1 upward and any missing points will be given a 0.

data$`Brand Code` |>
  unique()
## [1] "B" "A" "C" "D" NA
data1 <- data |>
  mutate(
    `Brand Code` = case_when(
      `Brand Code` == "A" ~ 1,
      `Brand Code` == "B" ~ 2,
      `Brand Code` == "C" ~ 3,
      `Brand Code` == "D" ~ 4,
      is.na(`Brand Code`) ~ 0,
      # .default = 0
    )
  ) |>
  head() |>
  print()
## # A tibble: 6 × 33
##   `Brand Code` `Carb Volume` `Fill Ounces` `PC Volume` `Carb Pressure`
##          <dbl>         <dbl>         <dbl>       <dbl>           <dbl>
## 1            2          5.34          24.0       0.263            68.2
## 2            1          5.43          24.0       0.239            68.4
## 3            2          5.29          24.1       0.263            70.8
## 4            1          5.44          24.0       0.293            63  
## 5            1          5.49          24.3       0.111            67.2
## 6            1          5.38          23.9       0.269            66.6
## # ℹ 28 more variables: `Carb Temp` <dbl>, PSC <dbl>, `PSC Fill` <dbl>,
## #   `PSC CO2` <dbl>, `Mnf Flow` <dbl>, `Carb Pressure1` <dbl>,
## #   `Fill Pressure` <dbl>, `Hyd Pressure1` <dbl>, `Hyd Pressure2` <dbl>,
## #   `Hyd Pressure3` <dbl>, `Hyd Pressure4` <dbl>, `Filler Level` <dbl>,
## #   `Filler Speed` <dbl>, Temperature <dbl>, `Usage cont` <dbl>,
## #   `Carb Flow` <dbl>, Density <dbl>, MFR <dbl>, Balling <dbl>,
## #   `Pressure Vacuum` <dbl>, PH <dbl>, `Oxygen Filler` <dbl>, …

To complete number 2 I wanted to take a look at the correlation between each of the features to see if there are any that are heavily correlated. There weren’t that many missing data points so I opted to do the imputation after this step. I removed any rows with missing data and then created a correlation plot to see how much things correlated. Not that surprisingly, there were quite a few features heavily correlated.

I then marked any combination that had a correlation coefficient higher than 0.7 to be removed so that only one would remain of each pair, in many cases they chained together so one feature could represent 4 to 5 other features.

create_corrplot <- function(data){
  cordata <- cor(data[complete.cases(data),])
  corrplot.mixed(cordata, tl.pos="lt")
}

highly_cor <- function(data){
  corelated <- data[complete.cases(data),] |>
    cor() |>
    abs() > 0.7
  
  corelated |>
    melt() |>
    filter(value & Var1 != Var2) |>
    rowwise() |>
    mutate(`Highly Cor` = paste(sort(c(Var1,Var2)), collapse = "-")) |>
    select(`Highly Cor`) |>
    unique() |>
    arrange(`Highly Cor`) |>
    print()
}
create_corrplot(data1)

This process was slow and manual, adding one feature to remove at a time and rerunning the code to make sure I wasn’t overshooting anything. I prioritized any features with many missing values and then features that could easily be replaced by one other (i.e. Carb Volume correlated heavily with 5 features so I removed the 5 features so only Carb Volume would remain). I also set the function to remove any features with low variance using the nearZeroVar function which only removed on feature but that feature was made up of a lot of zeros anyway.

Now with the remaining features I decided to look at their distributions. Most of them appeared pretty normally distributed so I decided that the impute function, which replaces NA with the median value, would be best to complete the data. Previously before removing features there were a number that had multiple bell curves and lots of abnormal shapes, but after removing most of them it was a reasonable assumption to take the median for missing values. Especially considering the low number of missing values for each feature.

remove_hc <- function(data){
  temp <- data |>
    select(-nearZeroVar(data)) |>
    select(
      -MFR, 
      -`Alch Rel`, 
      -`Balling Lvl`, 
      -Balling, 
      -`Carb Rel`,
      -`Carb Temp`,
      -Density,
      -`Filler Level`,
      -`Fill Pressure`
    ) |>
    impute()
  return (as.data.frame(temp))
}

highly_cor(data1)
## # A tibble: 276 × 1
## # Rowwise: 
##    `Highly Cor`             
##    <chr>                    
##  1 Air Pressurer-Alch Rel   
##  2 Air Pressurer-Balling Lvl
##  3 Alch Rel-Balling Lvl     
##  4 Balling-Air Pressurer    
##  5 Balling-Alch Rel         
##  6 Balling-Balling Lvl      
##  7 Balling-Oxygen Filler    
##  8 Balling-PH               
##  9 Carb Flow-Air Pressurer  
## 10 Carb Flow-Alch Rel       
## # ℹ 266 more rows
colSums(is.na(data1))
##        Brand Code       Carb Volume       Fill Ounces         PC Volume 
##                 0                 0                 0                 0 
##     Carb Pressure         Carb Temp               PSC          PSC Fill 
##                 0                 0                 1                 0 
##           PSC CO2          Mnf Flow    Carb Pressure1     Fill Pressure 
##                 0                 0                 0                 0 
##     Hyd Pressure1     Hyd Pressure2     Hyd Pressure3     Hyd Pressure4 
##                 0                 3                 3                 0 
##      Filler Level      Filler Speed       Temperature        Usage cont 
##                 0                 0                 0                 0 
##         Carb Flow           Density               MFR           Balling 
##                 0                 0                 0                 0 
##   Pressure Vacuum                PH     Oxygen Filler     Bowl Setpoint 
##                 0                 0                 0                 0 
## Pressure Setpoint     Air Pressurer          Alch Rel          Carb Rel 
##                 0                 0                 0                 0 
##       Balling Lvl 
##                 0
ppdata <- remove_hc(data1)
print(head(ppdata))
##   Brand Code Carb Volume Fill Ounces PC Volume Carb Pressure   PSC PSC Fill
## 1          2    5.340000    23.96667 0.2633333          68.2 0.104     0.26
## 2          1    5.426667    24.00667 0.2386667          68.4 0.124     0.22
## 3          2    5.286667    24.06000 0.2633333          70.8 0.090     0.34
## 4          1    5.440000    24.00667 0.2933333          63.0 0.090     0.42
## 5          1    5.486667    24.31333 0.1113333          67.2 0.026     0.16
## 6          1    5.380000    23.92667 0.2693333          66.6 0.090     0.24
##   PSC CO2 Carb Pressure1 Hyd Pressure4 Filler Speed Temperature Usage cont
## 1    0.04          118.8           118         4002        66.0      16.18
## 2    0.04          121.6           106         3986        67.6      19.90
## 3    0.16          120.2            82         4020        67.0      17.76
## 4    0.04          115.2            92         4012        65.6      17.42
## 5    0.12          118.4            92         4010        65.6      17.68
## 6    0.04          119.6           116         4014        66.2      23.82
##   Carb Flow Pressure Vacuum   PH Oxygen Filler Pressure Setpoint Air Pressurer
## 1      2932            -4.0 8.36         0.022              46.4         142.6
## 2      3144            -4.0 8.26         0.026              46.8         143.0
## 3      2914            -3.8 8.94         0.024              46.6         142.0
## 4      3062            -4.4 8.24         0.030              46.0         146.2
## 5      3054            -4.4 8.26         0.030              46.0         146.2
## 6      2948            -4.4 8.32         0.024              46.0         146.6
ppdata |>
  as.list() |>
  melt() |>
  as_tibble() |>
  arrange(value) |>
  ggplot() +
  geom_histogram(aes(x=value)) +
  facet_wrap(~L1, scales = "free")

Sampling

To sample I set a seed to get consistent, repeatable results and split the data 80/20 for a training and testing data set, respectively.

#setting the seed for all experiments
set.seed(314)

#creating a random sample subset of indices
samp <- sample(nrow(ppdata), round(nrow(ppdata)*0.8), replace = FALSE)

#setting the training and testing data from the sample indices
train <- ppdata[samp,]
test <- ppdata[-samp,]

Testing models

I created a table to track the metrics for every model to ensure I have a record for which one performed the best by the end. I also wrote a function to write to the table for ease of use.

results <- data.frame(
  Kernel = character(),
  R2 = double(),
  RMSE = double(),
  MAE = double(),
  Bias = double()
)

metrics <- function(df, kernel, model){
  pred <- predict(model, test)
  
  rsq <- R2(pred, test$PH)
  rmsqe <- RMSE(pred, test$PH)
  mae <- MAE(pred, test$PH)
  b1as <- bias(test$PH, pred)
  
  df[nrow(df) + 1,] = c(kernel, rsq, rmsqe, mae, b1as)
  
  return (df)
}

I started with decision trees because they tend to be the easiest to explain to people in a non-technical space. Unfortunately it did not perform very well so I decided to move on to random forests because they are only one step up as far as complexity goes. The random forest model, while better, still left something to be desired. Long story short I continued trying more and more models looking for anything that would give an \(R^2\) greater than 0.8, towards the end I was hoping for anything greater than 0.7. Unfortunately that didn’t happen despite tuning so many functions. I eventually landed on cubist as my final function with the highest \(R^2\) and the lowest RMSE. The rest of this section is just testing methods. (Decision tree and random forests took so long to run it was faster to just do the iterative for loops to get the values I needed.)

#creating a list of complexity parameters to try
cp = c(0.001,0.004,0.006,0.008,0.01,0.02,0.03)

#creating a df to store the results in
df <- data.frame(
  cp = integer(),
  R2 = double(),
  RMSE = double(),
  MAE = double(),
  Bias = double()
)
                
#looping through the different cp values and storing choice metrics in df
for (x in cp){
  #creation of decision tree model
  dt_model <- rpart(
    PH~., 
    data = train, 
    control = rpart.control(cp=x)
  )
  
  #predicting based on model and getting metrics
  pred <- predict(dt_model, test)
  
  #temp storage of choice metrics
  rmsqe <- RMSE(pred, test$PH)
  rsq <- R2(pred, test$PH)
  mae <- MAE(pred, test$PH)
  b1as <- bias(test$PH, pred)
  
  #storing metrics for the run
  df[nrow(df) + 1,] = c(x, rsq, rmsqe, mae, b1as)
}
#printing metrics for all runs
print(df |> arrange(desc(R2)))
##      cp R2  RMSE   MAE   Bias
## 1 0.001 NA 0.164 0.164 -0.164
## 2 0.004 NA 0.164 0.164 -0.164
## 3 0.006 NA 0.164 0.164 -0.164
## 4 0.008 NA 0.164 0.164 -0.164
## 5 0.010 NA 0.164 0.164 -0.164
## 6 0.020 NA 0.164 0.164 -0.164
## 7 0.030 NA 0.164 0.164 -0.164
results[nrow(results) + 1,] = c("Decision Tree", 0.5131047
                                , 0.1202118, 0.08532186, -.007126430)
#setting values to test in .mtry parameter
try = c(2:20)

#creating df for storage of metrics
df <- data.frame(
  mtry = integer(),
  R2 = double(),
  RMSE = double(),
  MAE = double(),
  Bias = double()
)

for (x in try){
  # defining model for the run
  rf_model <- train(
    PH~.,
    data = train,
    method = "rf",
    trControl = trainControl(method = "none"),
    #setting .mtry for the run
    tuneGrid = expand.grid(.mtry = x),
    na.action=na.omit
  )
  #predicting and getting metrics
  pred <- predict(rf_model, test)

  #storing choice metrics for run
  rmsqe <- RMSE(pred, test$PH)
  rsq <- R2(pred, test$PH)
  mae <- MAE(pred, test$PH)
  b1as <- bias(test$PH, pred)

  #storing metrics for run
  df[nrow(df) + 1,] = c(x, rsq, rmsqe, mae, b1as)
}
print(df |> arrange(desc(R2)))
##    mtry R2      RMSE       MAE       Bias
## 1     2 NA 0.1914793 0.1914793 -0.1914793
## 2     3 NA 0.1941667 0.1941667 -0.1941667
## 3     4 NA 0.1952833 0.1952833 -0.1952833
## 4     5 NA 0.1972733 0.1972733 -0.1972733
## 5     6 NA 0.1967167 0.1967167 -0.1967167
## 6     7 NA 0.1910633 0.1910633 -0.1910633
## 7     8 NA 0.1932933 0.1932933 -0.1932933
## 8     9 NA 0.1929567 0.1929567 -0.1929567
## 9    10 NA 0.1722933 0.1722933 -0.1722933
## 10   11 NA 0.1920067 0.1920067 -0.1920067
## 11   12 NA 0.2006333 0.2006333 -0.2006333
## 12   13 NA 0.1725900 0.1725900 -0.1725900
## 13   14 NA 0.1910633 0.1910633 -0.1910633
## 14   15 NA 0.1806333 0.1806333 -0.1806333
## 15   16 NA 0.1758233 0.1758233 -0.1758233
## 16   17 NA 0.1815533 0.1815533 -0.1815533
## 17   18 NA 0.2010400 0.2010400 -0.2010400
## 18   19 NA 0.2041133 0.2041133 -0.2041133
## 19   20 NA 0.1793733 0.1793733 -0.1793733
results[nrow(results) + 1,] = c("Decision Tree", 0.6722296, 
                                0.09708413, 0.07104201, -.001760987)
xgb_model <- train(
  PH~.,
  data = train,
  method = "xgbTree",
  na.action=na.omit,
  trControl = trainControl(method = "cv"),
  tuneGrid = expand.grid(
    #setting parameters for run
    nrounds = c(25,50,75,100),
    max_depth = 7:9,
    eta = c(0.1,0.2,0.3),
    gamma = c(0.005,0.01,0.02,0.03),
    colsample_bytree = 1,
    min_child_weight = 1,
    subsample = 1
  )
)
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:54] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:55] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:56] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:57] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:58] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:52:59] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:00] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:01] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:02] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:03] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:04] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:05] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:06] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:07] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:07] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
## [23:53:07] WARNING: src/c_api/c_api.cc:935: `ntree_limit` is deprecated, use `iteration_range` instead.
xgb_model
## eXtreme Gradient Boosting 
## 
##  5 samples
## 18 predictors
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 4, 4, 4, 4, 4 
## Resampling results across tuning parameters:
## 
##   eta  max_depth  gamma  nrounds  RMSE       Rsquared  MAE      
##   0.1  7          0.005   25      0.9854630  NaN       0.9854630
##   0.1  7          0.005   50      0.2178609  NaN       0.2178609
##   0.1  7          0.005   75      0.2471303  NaN       0.2471303
##   0.1  7          0.005  100      0.2595706  NaN       0.2595706
##   0.1  7          0.010   25      0.9854630  NaN       0.9854630
##   0.1  7          0.010   50      0.2163811  NaN       0.2163811
##   0.1  7          0.010   75      0.2472060  NaN       0.2472060
##   0.1  7          0.010  100      0.2567731  NaN       0.2567731
##   0.1  7          0.020   25      0.9854630  NaN       0.9854630
##   0.1  7          0.020   50      0.2124710  NaN       0.2124710
##   0.1  7          0.020   75      0.2470092  NaN       0.2470092
##   0.1  7          0.020  100      0.2548230  NaN       0.2548230
##   0.1  7          0.030   25      0.9854630  NaN       0.9854630
##   0.1  7          0.030   50      0.2066170  NaN       0.2066170
##   0.1  7          0.030   75      0.2429925  NaN       0.2429925
##   0.1  7          0.030  100      0.2583520  NaN       0.2583520
##   0.1  8          0.005   25      0.9854630  NaN       0.9854630
##   0.1  8          0.005   50      0.2178609  NaN       0.2178609
##   0.1  8          0.005   75      0.2471303  NaN       0.2471303
##   0.1  8          0.005  100      0.2595706  NaN       0.2595706
##   0.1  8          0.010   25      0.9854630  NaN       0.9854630
##   0.1  8          0.010   50      0.2163811  NaN       0.2163811
##   0.1  8          0.010   75      0.2472060  NaN       0.2472060
##   0.1  8          0.010  100      0.2567731  NaN       0.2567731
##   0.1  8          0.020   25      0.9854630  NaN       0.9854630
##   0.1  8          0.020   50      0.2124710  NaN       0.2124710
##   0.1  8          0.020   75      0.2470092  NaN       0.2470092
##   0.1  8          0.020  100      0.2548230  NaN       0.2548230
##   0.1  8          0.030   25      0.9854630  NaN       0.9854630
##   0.1  8          0.030   50      0.2066170  NaN       0.2066170
##   0.1  8          0.030   75      0.2429925  NaN       0.2429925
##   0.1  8          0.030  100      0.2583520  NaN       0.2583520
##   0.1  9          0.005   25      0.9854630  NaN       0.9854630
##   0.1  9          0.005   50      0.2178609  NaN       0.2178609
##   0.1  9          0.005   75      0.2471303  NaN       0.2471303
##   0.1  9          0.005  100      0.2595706  NaN       0.2595706
##   0.1  9          0.010   25      0.9854630  NaN       0.9854630
##   0.1  9          0.010   50      0.2163811  NaN       0.2163811
##   0.1  9          0.010   75      0.2472060  NaN       0.2472060
##   0.1  9          0.010  100      0.2567731  NaN       0.2567731
##   0.1  9          0.020   25      0.9854630  NaN       0.9854630
##   0.1  9          0.020   50      0.2124710  NaN       0.2124710
##   0.1  9          0.020   75      0.2470092  NaN       0.2470092
##   0.1  9          0.020  100      0.2548230  NaN       0.2548230
##   0.1  9          0.030   25      0.9854630  NaN       0.9854630
##   0.1  9          0.030   50      0.2066170  NaN       0.2066170
##   0.1  9          0.030   75      0.2429925  NaN       0.2429925
##   0.1  9          0.030  100      0.2583520  NaN       0.2583520
##   0.2  7          0.005   25      0.2216528  NaN       0.2216528
##   0.2  7          0.005   50      0.2555747  NaN       0.2555747
##   0.2  7          0.005   75      0.2561185  NaN       0.2561185
##   0.2  7          0.005  100      0.2561377  NaN       0.2561377
##   0.2  7          0.010   25      0.2134641  NaN       0.2134641
##   0.2  7          0.010   50      0.2589158  NaN       0.2589158
##   0.2  7          0.010   75      0.2599068  NaN       0.2599068
##   0.2  7          0.010  100      0.2599192  NaN       0.2599192
##   0.2  7          0.020   25      0.2114487  NaN       0.2114487
##   0.2  7          0.020   50      0.2560019  NaN       0.2560019
##   0.2  7          0.020   75      0.2559825  NaN       0.2559825
##   0.2  7          0.020  100      0.2560394  NaN       0.2560394
##   0.2  7          0.030   25      0.2033812  NaN       0.2033812
##   0.2  7          0.030   50      0.2586120  NaN       0.2586120
##   0.2  7          0.030   75      0.2601833  NaN       0.2601833
##   0.2  7          0.030  100      0.2602022  NaN       0.2602022
##   0.2  8          0.005   25      0.2216528  NaN       0.2216528
##   0.2  8          0.005   50      0.2555747  NaN       0.2555747
##   0.2  8          0.005   75      0.2561185  NaN       0.2561185
##   0.2  8          0.005  100      0.2561377  NaN       0.2561377
##   0.2  8          0.010   25      0.2134641  NaN       0.2134641
##   0.2  8          0.010   50      0.2589158  NaN       0.2589158
##   0.2  8          0.010   75      0.2599068  NaN       0.2599068
##   0.2  8          0.010  100      0.2599192  NaN       0.2599192
##   0.2  8          0.020   25      0.2114487  NaN       0.2114487
##   0.2  8          0.020   50      0.2560019  NaN       0.2560019
##   0.2  8          0.020   75      0.2559825  NaN       0.2559825
##   0.2  8          0.020  100      0.2560394  NaN       0.2560394
##   0.2  8          0.030   25      0.2033812  NaN       0.2033812
##   0.2  8          0.030   50      0.2586120  NaN       0.2586120
##   0.2  8          0.030   75      0.2601833  NaN       0.2601833
##   0.2  8          0.030  100      0.2602022  NaN       0.2602022
##   0.2  9          0.005   25      0.2216528  NaN       0.2216528
##   0.2  9          0.005   50      0.2555747  NaN       0.2555747
##   0.2  9          0.005   75      0.2561185  NaN       0.2561185
##   0.2  9          0.005  100      0.2561377  NaN       0.2561377
##   0.2  9          0.010   25      0.2134641  NaN       0.2134641
##   0.2  9          0.010   50      0.2589158  NaN       0.2589158
##   0.2  9          0.010   75      0.2599068  NaN       0.2599068
##   0.2  9          0.010  100      0.2599192  NaN       0.2599192
##   0.2  9          0.020   25      0.2114487  NaN       0.2114487
##   0.2  9          0.020   50      0.2560019  NaN       0.2560019
##   0.2  9          0.020   75      0.2559825  NaN       0.2559825
##   0.2  9          0.020  100      0.2560394  NaN       0.2560394
##   0.2  9          0.030   25      0.2033812  NaN       0.2033812
##   0.2  9          0.030   50      0.2586120  NaN       0.2586120
##   0.2  9          0.030   75      0.2601833  NaN       0.2601833
##   0.2  9          0.030  100      0.2602022  NaN       0.2602022
##   0.3  7          0.005   25      0.2458925  NaN       0.2458925
##   0.3  7          0.005   50      0.2550360  NaN       0.2550360
##   0.3  7          0.005   75      0.2550458  NaN       0.2550458
##   0.3  7          0.005  100      0.2550458  NaN       0.2550458
##   0.3  7          0.010   25      0.2446711  NaN       0.2446711
##   0.3  7          0.010   50      0.2546931  NaN       0.2546931
##   0.3  7          0.010   75      0.2546990  NaN       0.2546990
##   0.3  7          0.010  100      0.2546990  NaN       0.2546990
##   0.3  7          0.020   25      0.2523719  NaN       0.2523719
##   0.3  7          0.020   50      0.2576072  NaN       0.2576072
##   0.3  7          0.020   75      0.2576121  NaN       0.2576121
##   0.3  7          0.020  100      0.2576121  NaN       0.2576121
##   0.3  7          0.030   25      0.2497989  NaN       0.2497989
##   0.3  7          0.030   50      0.2551269  NaN       0.2551269
##   0.3  7          0.030   75      0.2551372  NaN       0.2551372
##   0.3  7          0.030  100      0.2551372  NaN       0.2551372
##   0.3  8          0.005   25      0.2458925  NaN       0.2458925
##   0.3  8          0.005   50      0.2550360  NaN       0.2550360
##   0.3  8          0.005   75      0.2550458  NaN       0.2550458
##   0.3  8          0.005  100      0.2550458  NaN       0.2550458
##   0.3  8          0.010   25      0.2446711  NaN       0.2446711
##   0.3  8          0.010   50      0.2546931  NaN       0.2546931
##   0.3  8          0.010   75      0.2546990  NaN       0.2546990
##   0.3  8          0.010  100      0.2546990  NaN       0.2546990
##   0.3  8          0.020   25      0.2523719  NaN       0.2523719
##   0.3  8          0.020   50      0.2576072  NaN       0.2576072
##   0.3  8          0.020   75      0.2576121  NaN       0.2576121
##   0.3  8          0.020  100      0.2576121  NaN       0.2576121
##   0.3  8          0.030   25      0.2497989  NaN       0.2497989
##   0.3  8          0.030   50      0.2551269  NaN       0.2551269
##   0.3  8          0.030   75      0.2551372  NaN       0.2551372
##   0.3  8          0.030  100      0.2551372  NaN       0.2551372
##   0.3  9          0.005   25      0.2458925  NaN       0.2458925
##   0.3  9          0.005   50      0.2550360  NaN       0.2550360
##   0.3  9          0.005   75      0.2550458  NaN       0.2550458
##   0.3  9          0.005  100      0.2550458  NaN       0.2550458
##   0.3  9          0.010   25      0.2446711  NaN       0.2446711
##   0.3  9          0.010   50      0.2546931  NaN       0.2546931
##   0.3  9          0.010   75      0.2546990  NaN       0.2546990
##   0.3  9          0.010  100      0.2546990  NaN       0.2546990
##   0.3  9          0.020   25      0.2523719  NaN       0.2523719
##   0.3  9          0.020   50      0.2576072  NaN       0.2576072
##   0.3  9          0.020   75      0.2576121  NaN       0.2576121
##   0.3  9          0.020  100      0.2576121  NaN       0.2576121
##   0.3  9          0.030   25      0.2497989  NaN       0.2497989
##   0.3  9          0.030   50      0.2551269  NaN       0.2551269
##   0.3  9          0.030   75      0.2551372  NaN       0.2551372
##   0.3  9          0.030  100      0.2551372  NaN       0.2551372
## 
## Tuning parameter 'colsample_bytree' was held constant at a value of 1
## 
## Tuning parameter 'min_child_weight' was held constant at a value of 1
## 
## Tuning parameter 'subsample' was held constant at a value of 1
## RMSE was used to select the optimal model using the smallest value.
## The final values used for the model were nrounds = 25, max_depth = 7, eta
##  = 0.2, gamma = 0.03, colsample_bytree = 1, min_child_weight = 1 and
##  subsample = 1.
results <- metrics(results, "Gradient boost", xgb_model)
rad_model <- best.tune(
  svm,
  PH~.,
  data = train,
  ranges = list(
    gamma = c(0.05,0.1,0.2), 
    cost = c(1,2,3,4)
  ),
  kernel = 'radial', 
  tunecontrol = tune.control(sampling = "fix")
)

rad_model
## 
## Call:
## best.tune(svm, PH ~ ., data = train, ranges = list(gamma = c(0.05, 
##     0.1, 0.2), cost = c(1, 2, 3, 4)), kernel = "radial", tunecontrol = tune.control(sampling = "fix"))
## 
## 
## Parameters:
##    SVM-Type:  eps-regression 
##  SVM-Kernel:  radial 
##        cost:  1 
##       gamma:  0.05 
##     epsilon:  0.1 
## 
## 
## Number of Support Vectors:  5
results <- metrics(results, "SVM radial", rad_model)
lin_model <- best.tune(
  svm,
  PH~.,
  data = train,
  ranges = list(
    gamma = c(0.05,0.1,0.2), 
    cost = c(1,2,3,4)
  ),
  kernel = 'linear', 
  tunecontrol = tune.control(sampling = "fix")
)

lin_model
## 
## Call:
## best.tune(svm, PH ~ ., data = train, ranges = list(gamma = c(0.05, 
##     0.1, 0.2), cost = c(1, 2, 3, 4)), kernel = "linear", tunecontrol = tune.control(sampling = "fix"))
## 
## 
## Parameters:
##    SVM-Type:  eps-regression 
##  SVM-Kernel:  linear 
##        cost:  1 
##       gamma:  0.05 
##     epsilon:  0.1 
## 
## 
## Number of Support Vectors:  5
results <- metrics(results, "SVM linear", lin_model)
poly_model <- best.tune(
  svm,
  PH~.,
  data = train,
  ranges = list(
    gamma = c(0.05,0.1,0.2), 
    cost = c(1,2,3,4)
  ),
  kernel = 'polynomial', 
  tunecontrol = tune.control(sampling = "fix")
)

poly_model
## 
## Call:
## best.tune(svm, PH ~ ., data = train, ranges = list(gamma = c(0.05, 
##     0.1, 0.2), cost = c(1, 2, 3, 4)), kernel = "polynomial", tunecontrol = tune.control(sampling = "fix"))
## 
## 
## Parameters:
##    SVM-Type:  eps-regression 
##  SVM-Kernel:  polynomial 
##        cost:  1 
##      degree:  3 
##       gamma:  0.05 
##      coef.0:  0 
##     epsilon:  0.1 
## 
## 
## Number of Support Vectors:  4
results <- metrics(results, "SVM polynomial", poly_model)
sig_model <- best.tune(
  svm,
  PH~.,
  data = train,
  ranges = list(
    gamma = c(0.05,0.1,0.2),
    cost = c(1,2,3,4)
  ),
  kernel = 'sigmoid',
  tunecontrol = tune.control(sampling = "fix")
)

sig_model
## 
## Call:
## best.tune(svm, PH ~ ., data = train, ranges = list(gamma = c(0.05, 
##     0.1, 0.2), cost = c(1, 2, 3, 4)), kernel = "sigmoid", tunecontrol = tune.control(sampling = "fix"))
## 
## 
## Parameters:
##    SVM-Type:  eps-regression 
##  SVM-Kernel:  sigmoid 
##        cost:  1 
##       gamma:  0.05 
##      coef.0:  0 
##     epsilon:  0.1 
## 
## 
## Number of Support Vectors:  5
results <- metrics(results, "SVM sigmoid", sig_model)
nnetFit <- avNNet(
  PH~.,
  data = train,
  size = 5,
  decay = 0.01,
  linout = TRUE,
  ## Reduce the amount of printed output
  trace = FALSE,
  ## Expand the number of iterations to find
  ## parameter estimates..
  maxit = 500,
  ## and the number of parameters used by the model
  MaxNWts = 5 * (ncol(train)) + 5 + 1
)

results <- metrics(results, "avNNet", nnetFit)
marsModel <- train(
  PH~., 
  data= train,
  method = "earth",
  tuneGrid = expand.grid(.degree = 1:2, .nprune = 2:38),
  trControl = trainControl(method = "cv")
)

marsModel
## Multivariate Adaptive Regression Spline 
## 
##  5 samples
## 18 predictors
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 4, 4, 4, 4, 4 
## Resampling results across tuning parameters:
## 
##   degree  nprune  RMSE   Rsquared  MAE  
##   1        2      0.258  NaN       0.258
##   1        3      0.258  NaN       0.258
##   1        4      0.258  NaN       0.258
##   1        5      0.258  NaN       0.258
##   1        6      0.258  NaN       0.258
##   1        7      0.258  NaN       0.258
##   1        8      0.258  NaN       0.258
##   1        9      0.258  NaN       0.258
##   1       10      0.258  NaN       0.258
##   1       11      0.258  NaN       0.258
##   1       12      0.258  NaN       0.258
##   1       13      0.258  NaN       0.258
##   1       14      0.258  NaN       0.258
##   1       15      0.258  NaN       0.258
##   1       16      0.258  NaN       0.258
##   1       17      0.258  NaN       0.258
##   1       18      0.258  NaN       0.258
##   1       19      0.258  NaN       0.258
##   1       20      0.258  NaN       0.258
##   1       21      0.258  NaN       0.258
##   1       22      0.258  NaN       0.258
##   1       23      0.258  NaN       0.258
##   1       24      0.258  NaN       0.258
##   1       25      0.258  NaN       0.258
##   1       26      0.258  NaN       0.258
##   1       27      0.258  NaN       0.258
##   1       28      0.258  NaN       0.258
##   1       29      0.258  NaN       0.258
##   1       30      0.258  NaN       0.258
##   1       31      0.258  NaN       0.258
##   1       32      0.258  NaN       0.258
##   1       33      0.258  NaN       0.258
##   1       34      0.258  NaN       0.258
##   1       35      0.258  NaN       0.258
##   1       36      0.258  NaN       0.258
##   1       37      0.258  NaN       0.258
##   1       38      0.258  NaN       0.258
##   2        2      0.258  NaN       0.258
##   2        3      0.258  NaN       0.258
##   2        4      0.258  NaN       0.258
##   2        5      0.258  NaN       0.258
##   2        6      0.258  NaN       0.258
##   2        7      0.258  NaN       0.258
##   2        8      0.258  NaN       0.258
##   2        9      0.258  NaN       0.258
##   2       10      0.258  NaN       0.258
##   2       11      0.258  NaN       0.258
##   2       12      0.258  NaN       0.258
##   2       13      0.258  NaN       0.258
##   2       14      0.258  NaN       0.258
##   2       15      0.258  NaN       0.258
##   2       16      0.258  NaN       0.258
##   2       17      0.258  NaN       0.258
##   2       18      0.258  NaN       0.258
##   2       19      0.258  NaN       0.258
##   2       20      0.258  NaN       0.258
##   2       21      0.258  NaN       0.258
##   2       22      0.258  NaN       0.258
##   2       23      0.258  NaN       0.258
##   2       24      0.258  NaN       0.258
##   2       25      0.258  NaN       0.258
##   2       26      0.258  NaN       0.258
##   2       27      0.258  NaN       0.258
##   2       28      0.258  NaN       0.258
##   2       29      0.258  NaN       0.258
##   2       30      0.258  NaN       0.258
##   2       31      0.258  NaN       0.258
##   2       32      0.258  NaN       0.258
##   2       33      0.258  NaN       0.258
##   2       34      0.258  NaN       0.258
##   2       35      0.258  NaN       0.258
##   2       36      0.258  NaN       0.258
##   2       37      0.258  NaN       0.258
##   2       38      0.258  NaN       0.258
## 
## RMSE was used to select the optimal model using the smallest value.
## The final values used for the model were nprune = 2 and degree = 1.
results <- metrics(results, "MARS Tuned", marsModel)
knnModel <- train(
  PH~., 
  data= train,
  method = "knn",
  preProc = c("center", "scale"),
  tuneGrid = data.frame(.k = 1:30),
  trControl = trainControl(method = "cv"))

knnModel
## k-Nearest Neighbors 
## 
##  5 samples
## 18 predictors
## 
## Pre-processing: centered (18), scaled (18) 
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 4, 4, 4, 4, 4 
## Resampling results across tuning parameters:
## 
##   k   RMSE   Rsquared  MAE  
##    1  0.280  NaN       0.280
##    2  0.272  NaN       0.272
##    3  0.248  NaN       0.248
##    4  0.258  NaN       0.258
##    5  0.258  NaN       0.258
##    6  0.258  NaN       0.258
##    7  0.258  NaN       0.258
##    8  0.258  NaN       0.258
##    9  0.258  NaN       0.258
##   10  0.258  NaN       0.258
##   11  0.258  NaN       0.258
##   12  0.258  NaN       0.258
##   13  0.258  NaN       0.258
##   14  0.258  NaN       0.258
##   15  0.258  NaN       0.258
##   16  0.258  NaN       0.258
##   17  0.258  NaN       0.258
##   18  0.258  NaN       0.258
##   19  0.258  NaN       0.258
##   20  0.258  NaN       0.258
##   21  0.258  NaN       0.258
##   22  0.258  NaN       0.258
##   23  0.258  NaN       0.258
##   24  0.258  NaN       0.258
##   25  0.258  NaN       0.258
##   26  0.258  NaN       0.258
##   27  0.258  NaN       0.258
##   28  0.258  NaN       0.258
##   29  0.258  NaN       0.258
##   30  0.258  NaN       0.258
## 
## RMSE was used to select the optimal model using the smallest value.
## The final value used for the model was k = 3.
results <- metrics(results, "KNN Tuned", knnModel)
cubistModel <- train(
  PH~.,
  data = train,
  method = "cubist",
  trControl = trainControl(method = "cv")
)

cubistModel
## Cubist 
## 
##  5 samples
## 18 predictors
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 4, 4, 4, 4, 4 
## Resampling results across tuning parameters:
## 
##   committees  neighbors  RMSE       Rsquared  MAE      
##    1          0          0.1839999  NaN       0.1839999
##    1          5          0.1839999  NaN       0.1839999
##    1          9          0.1839999  NaN       0.1839999
##   10          0          0.1839999  NaN       0.1839999
##   10          5          0.1820952  NaN       0.1820952
##   10          9          0.1839999  NaN       0.1839999
##   20          0          0.1839999  NaN       0.1839999
##   20          5          0.1839999  NaN       0.1839999
##   20          9          0.1839999  NaN       0.1839999
## 
## RMSE was used to select the optimal model using the smallest value.
## The final values used for the model were committees = 10 and neighbors = 5.
results <- metrics(results, "Cubist", cubistModel)
results |> arrange(desc(R2))
##            Kernel        R2               RMSE                MAE
## 1   Decision Tree 0.6722296         0.09708413         0.07104201
## 2   Decision Tree 0.5131047          0.1202118         0.08532186
## 3  Gradient boost      <NA> 0.0194337463378904 0.0194337463378904
## 4      SVM radial      <NA>  0.138393028949762  0.138393028949762
## 5      SVM linear      <NA>  0.107750991897039  0.107750991897039
## 6  SVM polynomial      <NA>  0.101827627232877  0.101827627232877
## 7     SVM sigmoid      <NA>  0.106860802822434  0.106860802822434
## 8          avNNet      <NA>  0.997706053986188  0.997706053986188
## 9      MARS Tuned      <NA>              0.164              0.164
## 10      KNN Tuned      <NA>  0.279999999999999  0.279999999999999
## 11         Cubist      <NA>  0.059999694824219  0.059999694824219
##                  Bias
## 1        -0.001760987
## 2         -0.00712643
## 3  0.0194337463378904
## 4  -0.138393028949762
## 5  -0.107750991897039
## 6  -0.101827627232877
## 7  -0.106860802822434
## 8   0.997706053986188
## 9              -0.164
## 10 -0.279999999999999
## 11 -0.059999694824219

Prediction

Now for the moment of truth I preprocess the data like I did before and plug it in the model to predict and then write that to an excel file for giving to the higher ups. Hopefully this is sufficient to ensure we stay within regulations!

evaluation <- eval |>
  mutate(
    `Brand Code` = case_when(
      `Brand Code` == "A" ~ 1,
      `Brand Code` == "B" ~ 2,
      `Brand Code` == "C" ~ 3,
      `Brand Code` == "D" ~ 4,
      is.na(`Brand Code`) ~ 0,
    )
  ) |>
  remove_hc()

final_pred <- predict(cubistModel, evaluation)
evaluation$PH <- final_pred 
print(head(evaluation))
##   Brand Code Carb Volume Fill Ounces PC Volume Carb Pressure   PSC PSC Fill
## 1          4    5.480000    24.03333 0.2700000          65.4 0.236     0.40
## 2          1    5.393333    23.95333 0.2266667          63.2 0.042     0.22
## 3          2    5.293333    23.92000 0.3033333          66.4 0.068     0.10
## 4          2    5.266667    23.94000 0.1860000          64.8 0.004     0.20
## 5          2    5.406667    24.20000 0.1600000          69.4 0.040     0.30
## 6          2    5.286667    24.10667 0.2120000          73.4 0.078     0.22
##   PSC CO2 Mnf Flow Carb Pressure1 Hyd Pressure1 Hyd Pressure2 Hyd Pressure3
## 1    0.04     -100          116.6             0          26.8          27.7
## 2    0.08     -100          118.8             0           0.0           0.0
## 3    0.02     -100          120.2             0           0.0           0.0
## 4    0.02     -100          124.8             0           0.0           0.0
## 5    0.06     -100          115.0             0           0.0           0.0
## 6    0.04     -100          118.6             0           0.0           0.0
##   Hyd Pressure4 Filler Speed Temperature Usage cont Carb Flow Pressure Vacuum
## 1            96         3986        66.0      21.66      2950            -3.8
## 2           112         4012        65.6      17.60      2916            -4.4
## 3            98         4010        65.6      24.18      3056            -4.2
## 4           132         3978        74.4      18.12        28            -4.0
## 5            94         4018        66.4      21.32      3214            -4.0
## 6            94         4010        66.6      18.00      3064            -3.8
##   Oxygen Filler Bowl Setpoint Pressure Setpoint Air Pressurer       PH
## 1        0.0220           130              45.2         142.6 8.320000
## 2        0.0300           120              46.0         147.2 8.290378
## 3        0.0460           120              46.0         146.6 8.320000
## 4        0.0337           120              46.0         146.4 8.320000
## 5        0.0820           120              50.0         145.8 8.320000
## 6        0.0640           120              46.0         146.0 8.320000
write.csv(evaluation, "prediction.csv")
write.csv(results, "results.csv")