lightgbm_R.h 17.4 KB
Newer Older
1
2
3
4
/*!
 * Copyright (c) 2017 Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See LICENSE file in the project root for license information.
 */
Guolin Ke's avatar
Guolin Ke committed
5
6
7
8
#ifndef LIGHTGBM_R_H_
#define LIGHTGBM_R_H_

#include <LightGBM/c_api.h>
9
10
11
12
13

#define R_NO_REMAP
#define R_USE_C99_IN_CXX
#include <Rinternals.h>

14
15
16
17
18
19
20
21
22
/*!
* \brief check if an R external pointer (like a Booster or Dataset handle) is a null pointer
* \param handle handle for a Booster, Dataset, or Predictor
* \return R logical, TRUE if the handle is a null pointer
*/
LIGHTGBM_C_EXPORT SEXP LGBM_HandleIsNull_R(
  SEXP handle
);

23
24
25
26
27
28
/*!
* \brief Throw a standardized error message when encountering a null Booster handle
* \return No return, will throw an error
*/
LIGHTGBM_C_EXPORT SEXP LGBM_NullBoosterHandleError_R();

Guolin Ke's avatar
Guolin Ke committed
29
30
31
// --- start Dataset interface

/*!
32
* \brief load Dataset from file like the command_line LightGBM does
Guolin Ke's avatar
Guolin Ke committed
33
34
* \param filename the name of the file
* \param parameters additional parameters
35
* \param reference used to align bin mapper with other Dataset, nullptr means not used
36
* \return Dataset handle
Guolin Ke's avatar
Guolin Ke committed
37
*/
38
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetCreateFromFile_R(
39
40
  SEXP filename,
  SEXP parameters,
41
  SEXP reference
42
);
Guolin Ke's avatar
Guolin Ke committed
43
44

/*!
45
* \brief create a Dataset from Compressed Sparse Column (CSC) format
Guolin Ke's avatar
Guolin Ke committed
46
47
48
* \param indptr pointer to row headers
* \param indices findex
* \param data fvalue
49
* \param num_indptr number of cols in the matrix + 1
Guolin Ke's avatar
Guolin Ke committed
50
51
52
* \param nelem number of nonzero elements in the matrix
* \param num_row number of rows
* \param parameters additional parameters
53
* \param reference used to align bin mapper with other Dataset, nullptr means not used
54
* \return Dataset handle
Guolin Ke's avatar
Guolin Ke committed
55
*/
56
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetCreateFromCSC_R(
57
58
59
  SEXP indptr,
  SEXP indices,
  SEXP data,
60
61
62
  SEXP num_indptr,
  SEXP nelem,
  SEXP num_row,
63
  SEXP parameters,
64
  SEXP reference
65
);
Guolin Ke's avatar
Guolin Ke committed
66
67

/*!
68
69
* \brief create Dataset from dense matrix
* \param data matrix data
70
71
* \param num_row number of rows
* \param num_col number columns
Guolin Ke's avatar
Guolin Ke committed
72
* \param parameters additional parameters
73
* \param reference used to align bin mapper with other Dataset, nullptr means not used
74
* \return Dataset handle
Guolin Ke's avatar
Guolin Ke committed
75
*/
76
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetCreateFromMat_R(
77
  SEXP data,
78
79
  SEXP num_row,
  SEXP num_col,
80
  SEXP parameters,
81
  SEXP reference
82
);
Guolin Ke's avatar
Guolin Ke committed
83
84

/*!
85
86
* \brief Create subset of a Dataset
* \param handle handle of full Dataset
Guolin Ke's avatar
Guolin Ke committed
87
88
89
* \param used_row_indices Indices used in subset
* \param len_used_row_indices length of Indices used in subset
* \param parameters additional parameters
90
* \return Dataset handle
Guolin Ke's avatar
Guolin Ke committed
91
*/
92
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetSubset_R(
93
  SEXP handle,
94
  SEXP used_row_indices,
95
  SEXP len_used_row_indices,
96
  SEXP parameters
97
);
Guolin Ke's avatar
Guolin Ke committed
98
99
100
101
102

/*!
* \brief save feature names to Dataset
* \param handle handle
* \param feature_names feature names
103
* \return R character vector of feature names
Guolin Ke's avatar
Guolin Ke committed
104
*/
105
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetSetFeatureNames_R(
106
  SEXP handle,
107
  SEXP feature_names
108
);
Guolin Ke's avatar
Guolin Ke committed
109
110

/*!
111
112
113
* \brief get feature names from Dataset
* \param handle Dataset handle
* \return an R character vector with feature names from the Dataset or NULL if no feature names
Guolin Ke's avatar
Guolin Ke committed
114
*/
115
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetFeatureNames_R(
116
  SEXP handle
117
);
Guolin Ke's avatar
Guolin Ke committed
118
119

/*!
120
121
* \brief save Dataset to binary file
* \param handle an instance of Dataset
Guolin Ke's avatar
Guolin Ke committed
122
* \param filename file name
123
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
124
*/
125
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetSaveBinary_R(
126
  SEXP handle,
127
  SEXP filename
128
);
Guolin Ke's avatar
Guolin Ke committed
129
130

/*!
131
132
133
* \brief free Dataset
* \param handle an instance of Dataset
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
134
*/
135
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetFree_R(
136
  SEXP handle
137
);
Guolin Ke's avatar
Guolin Ke committed
138
139
140

/*!
* \brief set vector to a content in info
141
*        Note: group and group_id only work for C_API_DTYPE_INT32
Guolin Ke's avatar
Guolin Ke committed
142
*              label and weight only work for C_API_DTYPE_FLOAT32
143
* \param handle an instance of Dataset
Guolin Ke's avatar
Guolin Ke committed
144
145
146
* \param field_name field name, can be label, weight, group, group_id
* \param field_data pointer to vector
* \param num_element number of element in field_data
147
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
148
*/
149
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetSetField_R(
150
  SEXP handle,
151
  SEXP field_name,
152
  SEXP field_data,
153
  SEXP num_element
154
);
Guolin Ke's avatar
Guolin Ke committed
155
156

/*!
157
158
* \brief get size of info vector from Dataset
* \param handle an instance of Dataset
Guolin Ke's avatar
Guolin Ke committed
159
* \param field_name field name
160
161
* \param out size of info vector from Dataset
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
162
*/
163
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetFieldSize_R(
164
  SEXP handle,
165
  SEXP field_name,
166
  SEXP out
167
);
Guolin Ke's avatar
Guolin Ke committed
168
169

/*!
170
171
* \brief get info vector from Dataset
* \param handle an instance of Dataset
Guolin Ke's avatar
Guolin Ke committed
172
173
* \param field_name field name
* \param field_data pointer to vector
174
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
175
*/
176
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetField_R(
177
  SEXP handle,
178
  SEXP field_name,
179
  SEXP field_data
180
);
Guolin Ke's avatar
Guolin Ke committed
181

182
/*!
183
184
185
186
187
 * \brief Raise errors for attempts to update Dataset parameters.
 *        Some parameters cannot be updated after construction.
 * \param old_params Current Dataset parameters
 * \param new_params New Dataset parameters
 * \return R NULL value
188
 */
189
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetUpdateParamChecking_R(
190
191
  SEXP old_params,
  SEXP new_params
192
);
193

Guolin Ke's avatar
Guolin Ke committed
194
195
/*!
* \brief get number of data.
196
* \param handle the handle to the Dataset
Guolin Ke's avatar
Guolin Ke committed
197
* \param out The address to hold number of data
198
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
199
*/
200
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetNumData_R(
201
  SEXP handle,
202
  SEXP out
203
);
Guolin Ke's avatar
Guolin Ke committed
204
205
206

/*!
* \brief get number of features
207
* \param handle the handle to the Dataset
Guolin Ke's avatar
Guolin Ke committed
208
* \param out The output of number of features
209
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
210
*/
211
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetNumFeature_R(
212
  SEXP handle,
213
  SEXP out
214
);
Guolin Ke's avatar
Guolin Ke committed
215

216
217
218
219
220
221
222
223
224
225
226
227
228
/*!
* \brief get number of bins for feature
* \param handle the handle to the Dataset
* \param feature the index of the feature
* \param out The output of number of bins
* \return R NULL value
*/
LIGHTGBM_C_EXPORT SEXP LGBM_DatasetGetFeatureNumBin_R(
  SEXP handle,
  SEXP feature,
  SEXP out
);

Guolin Ke's avatar
Guolin Ke committed
229
230
231
// --- start Booster interfaces

/*!
232
* \brief create a new boosting learner
233
* \param train_data training Dataset
Guolin Ke's avatar
Guolin Ke committed
234
* \param parameters format: 'key1=value1 key2=value2'
235
* \return Booster handle
Guolin Ke's avatar
Guolin Ke committed
236
*/
237
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterCreate_R(
238
239
  SEXP train_data,
  SEXP parameters
240
);
Guolin Ke's avatar
Guolin Ke committed
241
242

/*!
243
* \brief free Booster
Guolin Ke's avatar
Guolin Ke committed
244
* \param handle handle to be freed
245
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
246
*/
247
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterFree_R(
248
  SEXP handle
249
);
Guolin Ke's avatar
Guolin Ke committed
250
251

/*!
252
* \brief load an existing Booster from model file
Guolin Ke's avatar
Guolin Ke committed
253
* \param filename filename of model
254
* \return Booster handle
Guolin Ke's avatar
Guolin Ke committed
255
*/
256
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterCreateFromModelfile_R(
257
  SEXP filename
258
);
Guolin Ke's avatar
Guolin Ke committed
259

260
/*!
261
* \brief load an existing Booster from a string
262
* \param model_str string containing the model
263
* \return Booster handle
264
*/
265
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterLoadModelFromString_R(
266
  SEXP model_str
267
);
268

Guolin Ke's avatar
Guolin Ke committed
269
/*!
270
271
272
273
* \brief Merge model in two Boosters to first handle
* \param handle handle primary Booster handle, will merge other handle to this
* \param other_handle secondary Booster handle
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
274
*/
275
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterMerge_R(
276
277
  SEXP handle,
  SEXP other_handle
278
);
Guolin Ke's avatar
Guolin Ke committed
279
280

/*!
281
282
283
284
* \brief Add new validation to Booster
* \param handle Booster handle
* \param valid_data validation Dataset
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
285
*/
286
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterAddValidData_R(
287
288
  SEXP handle,
  SEXP valid_data
289
);
Guolin Ke's avatar
Guolin Ke committed
290
291

/*!
292
293
294
295
* \brief Reset training data for Booster
* \param handle Booster handle
* \param train_data training Dataset
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
296
*/
297
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterResetTrainingData_R(
298
299
  SEXP handle,
  SEXP train_data
300
);
Guolin Ke's avatar
Guolin Ke committed
301
302

/*!
303
304
* \brief Reset config for current Booster
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
305
* \param parameters format: 'key1=value1 key2=value2'
306
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
307
*/
308
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterResetParameter_R(
309
  SEXP handle,
310
  SEXP parameters
311
);
Guolin Ke's avatar
Guolin Ke committed
312
313

/*!
314
* \brief Get number of classes
315
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
316
* \param out number of classes
317
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
318
*/
319
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetNumClasses_R(
320
  SEXP handle,
321
  SEXP out
322
);
Guolin Ke's avatar
Guolin Ke committed
323

324
325
326
327
328
329
330
331
332
/*!
* \brief Get number of features.
* \param handle Booster handle
* \return Total number of features, as R integer
*/
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetNumFeature_R(
  SEXP handle
);

Guolin Ke's avatar
Guolin Ke committed
333
334
/*!
* \brief update the model in one round
335
336
* \param handle Booster handle
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
337
*/
338
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterUpdateOneIter_R(
339
  SEXP handle
340
);
Guolin Ke's avatar
Guolin Ke committed
341
342

/*!
343
* \brief update the model, by directly specifying gradient and second order gradient,
Guolin Ke's avatar
Guolin Ke committed
344
*       this can be used to support customized loss function
345
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
346
347
348
* \param grad gradient statistics
* \param hess second order gradient statistics
* \param len length of grad/hess
349
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
350
*/
351
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterUpdateOneIterCustom_R(
352
  SEXP handle,
353
354
  SEXP grad,
  SEXP hess,
355
  SEXP len
356
);
Guolin Ke's avatar
Guolin Ke committed
357
358
359

/*!
* \brief Rollback one iteration
360
361
* \param handle Booster handle
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
362
*/
363
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterRollbackOneIter_R(
364
  SEXP handle
365
);
Guolin Ke's avatar
Guolin Ke committed
366
367
368

/*!
* \brief Get iteration of current boosting rounds
369
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
370
* \param out iteration of boosting rounds
371
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
372
*/
373
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetCurrentIteration_R(
374
  SEXP handle,
375
  SEXP out
376
);
Guolin Ke's avatar
Guolin Ke committed
377

378
379
/*!
* \brief Get model upper bound value.
380
* \param handle Handle of Booster
381
* \param[out] out_results Result pointing to max value
382
* \return R NULL value
383
*/
384
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetUpperBoundValue_R(
385
    SEXP handle,
386
    SEXP out_result
387
388
389
390
);

/*!
* \brief Get model lower bound value.
391
* \param handle Handle of Booster
392
* \param[out] out_results Result pointing to min value
393
* \return R NULL value
394
*/
395
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetLowerBoundValue_R(
396
    SEXP handle,
397
    SEXP out_result
398
399
);

Guolin Ke's avatar
Guolin Ke committed
400
/*!
401
402
403
* \brief Get names of eval metrics
* \param handle Handle of booster
* \return R character vector with names of eval metrics
Guolin Ke's avatar
Guolin Ke committed
404
*/
405
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetEvalNames_R(
406
  SEXP handle
407
);
Guolin Ke's avatar
Guolin Ke committed
408
409
410

/*!
* \brief get evaluation for training data and validation data
411
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
412
* \param data_idx 0:training data, 1: 1st valid data, 2:2nd valid data ...
413
414
* \param out_result float array containing result
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
415
*/
416
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetEval_R(
417
  SEXP handle,
418
  SEXP data_idx,
419
  SEXP out_result
420
);
Guolin Ke's avatar
Guolin Ke committed
421
422
423

/*!
* \brief Get number of prediction for training data and validation data
424
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
425
426
* \param data_idx 0:training data, 1: 1st valid data, 2:2nd valid data ...
* \param out size of predict
427
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
428
*/
429
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetNumPredict_R(
430
  SEXP handle,
431
  SEXP data_idx,
432
  SEXP out
433
);
Guolin Ke's avatar
Guolin Ke committed
434
435

/*!
436
437
* \brief Get prediction for training data and validation data.
*        This can be used to support customized eval function
438
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
439
440
* \param data_idx 0:training data, 1: 1st valid data, 2:2nd valid data ...
* \param out_result, used to store predict result, should pre-allocate memory
441
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
442
*/
443
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterGetPredict_R(
444
  SEXP handle,
445
  SEXP data_idx,
446
  SEXP out_result
447
);
Guolin Ke's avatar
Guolin Ke committed
448
449
450

/*!
* \brief make prediction for file
451
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
452
453
* \param data_filename filename of data file
* \param data_has_header data file has header or not
454
455
456
457
458
459
* \param is_rawscore 1 to get raw predictions, before transformations like
*                    converting to probabilities, 0 otherwise
* \param is_leafidx 1 to get record of which leaf in each tree
*                   observations fell into, 0 otherwise
* \param is_predcontrib 1 to get feature contributions, 0 otherwise
* \param start_iteration Start index of the iteration to predict
Guolin Ke's avatar
Guolin Ke committed
460
* \param num_iteration number of iteration for prediction, <= 0 means no limit
461
462
463
* \param parameter additional parameters
* \param result_filename filename of file to write predictions to
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
464
*/
465
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterPredictForFile_R(
466
  SEXP handle,
467
  SEXP data_filename,
468
469
470
471
472
473
  SEXP data_has_header,
  SEXP is_rawscore,
  SEXP is_leafidx,
  SEXP is_predcontrib,
  SEXP start_iteration,
  SEXP num_iteration,
474
475
  SEXP parameter,
  SEXP result_filename
476
);
Guolin Ke's avatar
Guolin Ke committed
477
478
479

/*!
* \brief Get number of prediction
480
481
482
483
484
485
486
487
* \param handle Booster handle
* \param num_row number of rows in input
* \param is_rawscore 1 to get raw predictions, before transformations like
*                    converting to probabilities, 0 otherwise
* \param is_leafidx 1 to get record of which leaf in each tree
*                   observations fell into, 0 otherwise
* \param is_predcontrib 1 to get feature contributions, 0 otherwise
* \param start_iteration Start index of the iteration to predict
Guolin Ke's avatar
Guolin Ke committed
488
* \param num_iteration number of iteration for prediction, <= 0 means no limit
489
* \param out_len length of prediction
490
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
491
*/
492
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterCalcNumPredict_R(
493
  SEXP handle,
494
495
496
497
498
499
  SEXP num_row,
  SEXP is_rawscore,
  SEXP is_leafidx,
  SEXP is_predcontrib,
  SEXP start_iteration,
  SEXP num_iteration,
500
  SEXP out_len
501
);
Guolin Ke's avatar
Guolin Ke committed
502
503

/*!
504
* \brief make prediction for a new Dataset
Guolin Ke's avatar
Guolin Ke committed
505
*        Note:  should pre-allocate memory for out_result,
506
*               for normal and raw score: its length is equal to num_class * num_data
Guolin Ke's avatar
Guolin Ke committed
507
*               for leaf index, its length is equal to num_class * num_data * num_iteration
508
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
509
510
511
* \param indptr pointer to row headers
* \param indices findex
* \param data fvalue
512
* \param num_indptr number of cols in the matrix + 1
513
* \param nelem number of non-zero elements in the matrix
Guolin Ke's avatar
Guolin Ke committed
514
* \param num_row number of rows
515
516
517
518
519
520
* \param is_rawscore 1 to get raw predictions, before transformations like
*                    converting to probabilities, 0 otherwise
* \param is_leafidx 1 to get record of which leaf in each tree
*                   observations fell into, 0 otherwise
* \param is_predcontrib 1 to get feature contributions, 0 otherwise
* \param start_iteration Start index of the iteration to predict
Guolin Ke's avatar
Guolin Ke committed
521
* \param num_iteration number of iteration for prediction, <= 0 means no limit
522
523
524
* \param parameter additional parameters
* \param out_result prediction result
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
525
*/
526
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterPredictForCSC_R(
527
  SEXP handle,
528
529
530
  SEXP indptr,
  SEXP indices,
  SEXP data,
531
532
533
534
535
536
537
538
  SEXP num_indptr,
  SEXP nelem,
  SEXP num_row,
  SEXP is_rawscore,
  SEXP is_leafidx,
  SEXP is_predcontrib,
  SEXP start_iteration,
  SEXP num_iteration,
539
  SEXP parameter,
540
  SEXP out_result
541
);
Guolin Ke's avatar
Guolin Ke committed
542
543

/*!
544
* \brief make prediction for a new Dataset
Guolin Ke's avatar
Guolin Ke committed
545
*        Note:  should pre-allocate memory for out_result,
546
*               for normal and raw score: its length is equal to num_class * num_data
Guolin Ke's avatar
Guolin Ke committed
547
*               for leaf index, its length is equal to num_class * num_data * num_iteration
548
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
549
* \param data pointer to the data space
550
551
* \param num_row number of rows
* \param num_col number columns
552
553
554
555
556
557
* \param is_rawscore 1 to get raw predictions, before transformations like
*                    converting to probabilities, 0 otherwise
* \param is_leafidx 1 to get record of which leaf in each tree
*                   observations fell into, 0 otherwise
* \param is_predcontrib 1 to get feature contributions, 0 otherwise
* \param start_iteration Start index of the iteration to predict
Guolin Ke's avatar
Guolin Ke committed
558
* \param num_iteration number of iteration for prediction, <= 0 means no limit
559
560
561
* \param parameter additional parameters
* \param out_result prediction result
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
562
*/
563
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterPredictForMat_R(
564
  SEXP handle,
565
  SEXP data,
566
567
568
569
570
571
572
  SEXP num_row,
  SEXP num_col,
  SEXP is_rawscore,
  SEXP is_leafidx,
  SEXP is_predcontrib,
  SEXP start_iteration,
  SEXP num_iteration,
573
  SEXP parameter,
574
  SEXP out_result
575
);
Guolin Ke's avatar
Guolin Ke committed
576

577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
/*!
* \brief make feature contribution prediction for a new Dataset
* \param handle Booster handle
* \param indptr array with the index pointer of the data in CSR or CSC format
* \param indices array with the non-zero indices of the data in CSR or CSC format
* \param data array with the non-zero values of the data in CSR or CSC format
* \param is_csr whether the input data is in CSR format or not (pass FALSE for CSC)
* \param nrows number of rows in the data
* \param ncols number of columns in the data
* \param start_iteration Start index of the iteration to predict
* \param num_iteration number of iteration for prediction, <= 0 means no limit
* \param parameter additional parameters
* \return An R list with entries "indptr", "indices", "data", constituting the
*         feature contributions in sparse format, in the same storage order as
*         the input data.
*/
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterPredictSparseOutput_R(
  SEXP handle,
  SEXP indptr,
  SEXP indices,
  SEXP data,
  SEXP is_csr,
  SEXP nrows,
  SEXP ncols,
  SEXP start_iteration,
  SEXP num_iteration,
  SEXP parameter
);

Guolin Ke's avatar
Guolin Ke committed
606
607
/*!
* \brief save model into file
608
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
609
* \param num_iteration, <= 0 means save all
610
* \param feature_importance_type type of feature importance, 0: split, 1: gain
Guolin Ke's avatar
Guolin Ke committed
611
* \param filename file name
612
* \return R NULL value
Guolin Ke's avatar
Guolin Ke committed
613
*/
614
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterSaveModel_R(
615
  SEXP handle,
616
617
  SEXP num_iteration,
  SEXP feature_importance_type,
618
  SEXP filename
619
);
Guolin Ke's avatar
Guolin Ke committed
620

621
622
/*!
* \brief create string containing model
623
* \param handle Booster handle
624
* \param num_iteration, <= 0 means save all
625
626
* \param feature_importance_type type of feature importance, 0: split, 1: gain
* \return R character vector (length=1) with model string
627
*/
628
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterSaveModelToString_R(
629
  SEXP handle,
630
  SEXP num_iteration,
631
  SEXP feature_importance_type
632
);
633

Guolin Ke's avatar
Guolin Ke committed
634
/*!
635
636
* \brief dump model to JSON
* \param handle Booster handle
Guolin Ke's avatar
Guolin Ke committed
637
* \param num_iteration, <= 0 means save all
638
639
* \param feature_importance_type type of feature importance, 0: split, 1: gain
* \return R character vector (length=1) with model JSON
Guolin Ke's avatar
Guolin Ke committed
640
*/
641
LIGHTGBM_C_EXPORT SEXP LGBM_BoosterDumpModel_R(
642
  SEXP handle,
643
  SEXP num_iteration,
644
  SEXP feature_importance_type
645
);
Guolin Ke's avatar
Guolin Ke committed
646

647
648
649
650
651
652
/*!
* \brief Dump parameter aliases to JSON
* \return R character vector (length=1) with aliases JSON
*/
LIGHTGBM_C_EXPORT SEXP LGBM_DumpParamAliases_R();

653
#endif  // LIGHTGBM_R_H_