Fits a `lightgbm` model with a consistent interface. Supports binary classification, multiclass classification, and regression.

wrap_lightgbm(x, y, ...)

# S3 method for class 'wrap_lightgbm'
predict(object, newx, type = c("class", "prob"), ...)

# S3 method for class 'wrap_lightgbm'
print(x, ...)

Arguments

x

A matrix or data.frame of features.

y

A factor or character vector for classification, numeric for regression.

...

Additional arguments passed to [lightgbm::lgb.train()]. Pass `params = list(objective = "binary")` for binary classification, `params = list(objective = "multiclass", num_class = k)` for multiclass, or `params = list(objective = "regression")` for regression.

object

A fitted `wrap_lightgbm` object.

newx

A matrix or data.frame of new observations.

type

`"class"` (default) for class labels, `"prob"` for a probability matrix. Ignored for regression.

Value

An object of class `wrap_lightgbm` with fields:

fit

The fitted lgb.Booster model.

levels

Class levels (NULL for regression).

task

"classification" or "regression".

objective

The lightgbm objective string, stored at fit time.

Examples

# \donttest{
X <- as.matrix(iris[, 1:4])
y <- iris$Species
mod <- wrap_lightgbm(X, y,
  params = list(objective = "multiclass", num_class = 3, verbose = -1),
  nrounds = 50)
predict(mod, newx = X, type = "class")
#>   [1] setosa     versicolor setosa     virginica  virginica  virginica 
#>   [7] versicolor versicolor virginica  setosa     virginica  virginica 
#>  [13] versicolor versicolor setosa     versicolor versicolor versicolor
#>  [19] virginica  setosa     virginica  setosa     versicolor versicolor
#>  [25] versicolor virginica  versicolor virginica  versicolor setosa    
#>  [31] versicolor setosa     virginica  virginica  versicolor versicolor
#>  [37] virginica  virginica  virginica  virginica  versicolor virginica 
#>  [43] setosa     setosa     versicolor virginica  setosa     setosa    
#>  [49] virginica  virginica  versicolor setosa     virginica  setosa    
#>  [55] virginica  setosa     setosa     virginica  setosa     versicolor
#>  [61] setosa     setosa     virginica  virginica  virginica  setosa    
#>  [67] virginica  virginica  versicolor versicolor versicolor virginica 
#>  [73] versicolor setosa     virginica  setosa     virginica  versicolor
#>  [79] virginica  versicolor virginica  versicolor setosa     setosa    
#>  [85] versicolor versicolor virginica  virginica  virginica  virginica 
#>  [91] versicolor setosa     setosa     setosa     versicolor virginica 
#>  [97] setosa     setosa     virginica  virginica  versicolor setosa    
#> [103] virginica  setosa     setosa     virginica  versicolor virginica 
#> [109] versicolor virginica  setosa     versicolor virginica  virginica 
#> [115] virginica  setosa     virginica  versicolor setosa     setosa    
#> [121] virginica  setosa     virginica  versicolor setosa     virginica 
#> [127] setosa     virginica  versicolor setosa     versicolor setosa    
#> [133] virginica  versicolor virginica  setosa     versicolor setosa    
#> [139] versicolor versicolor virginica  versicolor virginica  versicolor
#> [145] setosa     versicolor virginica  virginica  setosa     versicolor
#> Levels: setosa versicolor virginica
predict(mod, newx = X, type = "prob")
#>              setosa   versicolor    virginica
#>   [1,] 0.9986147567 0.9962126949 0.9984018480
#>   [2,] 0.9977728357 0.9989016863 0.9984931982
#>   [3,] 0.9989828918 0.9989419659 0.9959894302
#>   [4,] 0.9977728357 0.9985523684 0.9990382600
#>   [5,] 0.9962126949 0.9962126949 0.9977247002
#>   [6,] 0.9980721446 0.9984671374 0.9986005889
#>   [7,] 0.9980027753 0.9986652607 0.9984946015
#>   [8,] 0.9986669057 0.9990007686 0.9774081502
#>   [9,] 0.9857874548 0.9960895076 0.9989368491
#>  [10,] 0.9986184500 0.9985386102 0.9984763164
#>  [11,] 0.9977827497 0.9985275020 0.9986184500
#>  [12,] 0.9979871066 0.9977728357 0.9981974451
#>  [13,] 0.9979871066 0.9990007686 0.9962126949
#>  [14,] 0.9986682924 0.9988898684 0.9926205907
#>  [15,] 0.9984018480 0.9865292199 0.9758224444
#>  [16,] 0.9961656333 0.9986857239 0.9984018480
#>  [17,] 0.9985523684 0.9987268086 0.0018178409
#>  [18,] 0.0018256953 0.0019224938 0.0007416751
#>  [19,] 0.0013648784 0.0009540648 0.0028850052
#>  [20,] 0.0094846168 0.0009500176 0.0010193919
#>  [21,] 0.0083119645 0.0008215997 0.0089882665
#>  [22,] 0.0032304219 0.0007625947 0.0008305756
#>  [23,] 0.0012045085 0.0033157356 0.0032712631
#>  [24,] 0.0008923537 0.0141417046 0.0024476969
#>  [25,] 0.0020386177 0.0037222123 0.0007648521
#>  [26,] 0.0008305154 0.0013998754 0.0065825097
#>  [27,] 0.0031368054 0.0037809784 0.0009337228
#>  [28,] 0.0040187320 0.0008176463 0.0117758340
#>  [29,] 0.0017006188 0.0058767718 0.0013037954
#>  [30,] 0.0008864234 0.0007748374 0.0006569446
#>  [31,] 0.0008656160 0.0026112892 0.0007522154
#>  [32,] 0.0083233832 0.0007006698 0.0008906564
#>  [33,] 0.0006572452 0.0020096064 0.0424368756
#>  [34,] 0.0007940808 0.0009054198 0.0012031154
#>  [35,] 0.0005633298 0.0011856105 0.0005407432
#>  [36,] 0.0005633298 0.0059203757 0.0017623166
#>  [37,] 0.0012589065 0.0009432480 0.0043761918
#>  [38,] 0.0005521025 0.0005628444 0.0012346528
#>  [39,] 0.0010918079 0.0010282698 0.0015505440
#>  [40,] 0.0009432480 0.0004420997 0.0035112897
#>  [41,] 0.0009432015 0.0012712242 0.0004525266
#>  [42,] 0.0028122031 0.0009432480 0.0058489714
#>  [43,] 0.0041371095 0.0031131244 0.0004405147
#>  [44,] 0.0040028253 0.0004933308 0.0009548471
#>  [45,] 0.0004405147 0.0051369287 0.0020424741
#>  [46,] 0.0005633298 0.0009054198 0.0023751359
#>  [47,] 0.0041137760 0.0005628444 0.0005633298
#>  [48,] 0.0038792474 0.0012031154 0.0009432015
#>  [49,] 0.0009432480 0.0006390530 0.0013160138
#>  [50,] 0.0006217163 0.0009051072 0.0044405697
#>  [51,] 0.0009945952 0.0017273653 0.0009976088
#>  [52,] 0.0013411531 0.0007202752 0.0011163092
#>  [53,] 0.0005683628 0.0006859434 0.0019499027
#>  [54,] 0.0013411531 0.0010630621 0.0005271885
#>  [55,] 0.0017273653 0.0017273653 0.0018849999
#>  [56,] 0.0015373915 0.0011360948 0.0010023773
#>  [57,] 0.0016067143 0.0009438336 0.0011210922
#>  [58,] 0.0009423978 0.0005575787 0.0215907664
#>  [59,] 0.0128715649 0.0020858020 0.0006853089
#>  [60,] 0.0009969550 0.0010708804 0.0009326097
#>  [61,] 0.0013315388 0.0010819649 0.0009969550
#>  [62,] 0.0016224908 0.0013411531 0.0012885662
#>  [63,] 0.0016224908 0.0005575787 0.0017273653
#>  [64,] 0.0009472006 0.0007259126 0.0038047124
#>  [65,] 0.0009976088 0.0125761160 0.0229764695
#>  [66,] 0.0017408233 0.0009297891 0.0009976088
#>  [67,] 0.0010630621 0.0008602106 0.9963743958
#>  [68,] 0.9945598335 0.9833956543 0.9958611084
#>  [69,] 0.9911833428 0.9964711858 0.9916904219
#>  [70,] 0.9787435762 0.9976516203 0.9969197090
#>  [71,] 0.9810633542 0.9964775572 0.9790262896
#>  [72,] 0.9763241919 0.9972933913 0.9981638410
#>  [73,] 0.9944922154 0.9950810775 0.9710464737
#>  [74,] 0.9948737554 0.7854602155 0.9875145510
#>  [75,] 0.9286942018 0.9766002156 0.9970682722
#>  [76,] 0.9980916115 0.9857668583 0.6352710896
#>  [77,] 0.9800901049 0.9920512365 0.9946338510
#>  [78,] 0.9915638817 0.9975688346 0.6269965434
#>  [79,] 0.9922236816 0.9871581961 0.9960952096
#>  [80,] 0.9948938396 0.9972803080 0.9963339441
#>  [81,] 0.9955211274 0.9834024794 0.9958907898
#>  [82,] 0.9824111111 0.9979648252 0.9968835435
#>  [83,] 0.9977317468 0.9902294550 0.9493576658
#>  [84,] 0.9971817365 0.0015644449 0.0069218182
#>  [85,] 0.0032273172 0.0032963589 0.0015892837
#>  [86,] 0.0032273172 0.0846757675 0.0095375910
#>  [87,] 0.0072782243 0.0031769089 0.0181522165
#>  [88,] 0.0022337788 0.0040861333 0.0134578466
#>  [89,] 0.0055568894 0.0027343649 0.0067885757
#>  [90,] 0.0031769089 0.0020989185 0.1995323308
#>  [91,] 0.0032260906 0.0182177640 0.0020833389
#>  [92,] 0.1185094617 0.0031769089 0.0235055594
#>  [93,] 0.0772078577 0.0521380316 0.0010404174
#>  [94,] 0.0877083683 0.0025158814 0.0032159751
#>  [95,] 0.0010404174 0.1723860312 0.0460444980
#>  [96,] 0.0032273172 0.0015644449 0.0103987954
#>  [97,] 0.1182862768 0.0040861333 0.0032273172
#>  [98,] 0.0526047109 0.0069218182 0.0032260906
#>  [99,] 0.0031769089 0.0055483228 0.0384449043
#> [100,] 0.0027691629 0.0019091219 0.0352045217
#> [101,] 0.0003906481 0.0020599398 0.0006005432
#> [102,] 0.0008860112 0.0003780385 0.0003904926
#> [103,] 0.0004487454 0.0003720907 0.0020606672
#> [104,] 0.0008860112 0.0003845696 0.0004345515
#> [105,] 0.0020599398 0.0020599398 0.0003902999
#> [106,] 0.0003904639 0.0003967677 0.0003970338
#> [107,] 0.0003905103 0.0003909057 0.0003843063
#> [108,] 0.0003906966 0.0004416527 0.0010010834
#> [109,] 0.0013409803 0.0018246904 0.0003778420
#> [110,] 0.0003845950 0.0003905094 0.0005910739
#> [111,] 0.0008857115 0.0003905331 0.0003845950
#> [112,] 0.0003904026 0.0008860112 0.0005139887
#> [113,] 0.0003904026 0.0004416527 0.0020599398
#> [114,] 0.0003845070 0.0003842190 0.0035746969
#> [115,] 0.0006005432 0.0008946641 0.0012010860
#> [116,] 0.0020935434 0.0003844870 0.0006005432
#> [117,] 0.0003845696 0.0004129808 0.0018077634
#> [118,] 0.0036144712 0.0146818519 0.0033972165
#> [119,] 0.0074517788 0.0025747493 0.0054245729
#> [120,] 0.0117718070 0.0013983621 0.0020608991
#> [121,] 0.0106246813 0.0027008431 0.0119854439
#> [122,] 0.0204453863 0.0019440140 0.0010055834
#> [123,] 0.0043032761 0.0016031869 0.0256822632
#> [124,] 0.0042338908 0.2003980798 0.0100377521
#> [125,] 0.0692671805 0.0196775721 0.0021668757
#> [126,] 0.0010778731 0.0128332663 0.3581464007
#> [127,] 0.0167730897 0.0041677851 0.0044324262
#> [128,] 0.0044173863 0.0016135190 0.3612276226
#> [129,] 0.0060756997 0.0069650321 0.0026009950
#> [130,] 0.0042197370 0.0019448546 0.0030091114
#> [131,] 0.0036132565 0.0139862314 0.0033569948
#> [132,] 0.0092655057 0.0013345050 0.0022258001
#> [133,] 0.0016110080 0.0077609386 0.0082054585
#> [134,] 0.0020241827 0.9975301353 0.9918750664
#> [135,] 0.9962093530 0.9955180306 0.9978699731
#> [136,] 0.9962093530 0.9094038568 0.9887000924
#> [137,] 0.9914628692 0.9958798432 0.9774715917
#> [138,] 0.9972141187 0.9953510223 0.9853075007
#> [139,] 0.9933513028 0.9962373654 0.9916608804
#> [140,] 0.9958798432 0.9974589818 0.7969563795
#> [141,] 0.9958307080 0.9805110117 0.9974641345
#> [142,] 0.8786783352 0.9958798432 0.9706454692
#> [143,] 0.9186550328 0.9447488440 0.9985190679
#> [144,] 0.9082888064 0.9969907877 0.9958291779
#> [145,] 0.9985190679 0.8224770401 0.9519130279
#> [146,] 0.9962093530 0.9975301353 0.9872260687
#> [147,] 0.8775999472 0.9953510223 0.9962093530
#> [148,] 0.9435160417 0.9918750664 0.9958307080
#> [149,] 0.9958798432 0.9938126242 0.9602390818
#> [150,] 0.9966091208 0.9971857708 0.9603549086
# }