# 參數
這個頁面包含了 LightGBM 的所有參數.
**一些有用的鏈接列表**
* [Python API](./Python-API.rst)
* [Parameters Tuning](./Parameters-Tuning.rst)
**外部鏈接**
* [Laurae++ Interactive Documentation](https://sites.google.com/view/lauraepp/parameters)
**更新于 08/04/2017**
以下參數的default已經修改:
* `min_data_in_leaf` = 100 => 20
* `min_sum_hessian_in_leaf` = 10 => 1e-3
* `num_leaves` = 127 => 31
* `num_iterations` = 10 => 100
## 參數格式
參數的格式為 `key1=value1 key2=value2 ...`. 并且, 在配置文件和命令行中均可以設置參數. 使用命令行設置參數時, 在 `=` 前后都不應該有空格. 使用配置文件設置參數時, 一行只能包含一個參數. 你可以使用 `#` 進行注釋.
如果一個參數在命令行和配置文件中均出現了, LightGBM 將會使用命令行中的該參數.
## 核心參數
* `config`, default=`""`, type=string, alias=`config_file`
* 配置文件的路徑
* `task`, default=`train`, type=enum, options=`train`, `predict`, `convert_model`
* `train`, alias=`training`, for training
* `predict`, alias=`prediction`, `test`, for prediction.
* `convert_model`, 要將模型文件轉換成 if-else 格式, 可以查看這個鏈接獲取更多信息 [Convert model parameters](#convert-model-parameters)
* `objective`, default=`regression`, type=enum, options=`regression`, `regression_l1`, `huber`, `fair`, `poisson`, `quantile`, `quantile_l2`, `binary`, `multiclass`, `multiclassova`, `xentropy`, `xentlambda`, `lambdarank`, alias=`objective`, `app` , `application`
* regression application
* `regression_l2`, L2 loss, alias=`regression`, `mean_squared_error`, `mse`
* `regression_l1`, L1 loss, alias=`mean_absolute_error`, `mae`
* `huber`, [Huber loss](https://en.wikipedia.org/wiki/Huber_loss)
* `fair`, [Fair loss](https://www.kaggle.com/c/allstate-claims-severity/discussion/24520)
* `poisson`, [Poisson regression](https://en.wikipedia.org/wiki/Poisson_regression)
* `quantile`, [Quantile regression](https://en.wikipedia.org/wiki/Quantile_regression)
* `quantile_l2`, 類似于 `quantile`, 但是使用了 L2 loss
* `binary`, binary [log loss](https://www.kaggle.com/wiki/LogLoss) classification application
* multi-class classification application
* `multiclass`, [softmax](https://en.wikipedia.org/wiki/Softmax_function) 目標函數, 應該設置好 `num_class`
* `multiclassova`, [One-vs-All](https://en.wikipedia.org/wiki/Multiclass_classification#One-vs.-rest) 二分類目標函數, 應該設置好 `num_class`
* cross-entropy application
* `xentropy`, 目標函數為 cross-entropy (同時有可選擇的線性權重), alias=`cross_entropy`
* `xentlambda`, 替代參數化的 cross-entropy, alias=`cross_entropy_lambda`
* 標簽是 [0, 1] 間隔內的任意值
* `lambdarank`, [lambdarank](https://papers.nips.cc/paper/2971-learning-to-rank-with-nonsmooth-cost-functions.pdf) application
* 在 lambdarank 任務中標簽應該為 `int` type, 數值越大代表相關性越高 (e.g. 0:bad, 1:fair, 2:good, 3:perfect)
* `label_gain` 可以被用來設置 `int` 標簽的增益 (權重)
* `boosting`, default=`gbdt`, type=enum, options=`gbdt`, `rf`, `dart`, `goss`, alias=`boost`, `boosting_type`
* `gbdt`, 傳統的梯度提升決策樹
* `rf`, Random Forest (隨機森林)
* `dart`, [Dropouts meet Multiple Additive Regression Trees](https://arxiv.org/abs/1505.01866)
* `goss`, Gradient-based One-Side Sampling (基于梯度的單側采樣)
* `data`, default=`""`, type=string, alias=`train`, `train_data`
* 訓練數據, LightGBM 將會使用這個數據進行訓練
* `valid`, default=`""`, type=multi-string, alias=`test`, `valid_data`, `test_data`
* 驗證/測試 數據, LightGBM 將輸出這些數據的度量
* 支持多驗證數據集, 以 `,` 分割
* `num_iterations`, default=`100`, type=int, alias=`num_iteration`, `num_tree`, `num_trees`, `num_round`, `num_rounds`, `num_boost_round`
* boosting 的迭代次數
* **Note**: 對于 Python/R 包, **這個參數是被忽略的**, 使用 `train` and `cv` 的輸入參數 `num_boost_round` (Python) or `nrounds` (R) 來代替
* **Note**: 在內部, LightGBM 對于 `multiclass` 問題設置 `num_class * num_iterations` 棵樹
* `learning_rate`, default=`0.1`, type=double, alias=`shrinkage_rate`
* shrinkage rate (收縮率)
* 在 `dart` 中, 它還影響了 dropped trees 的歸一化權重
* `num_leaves`, default=`31`, type=int, alias=`num_leaf`
* 一棵樹上的葉子數
* `tree_learner`, default=`serial`, type=enum, options=`serial`, `feature`, `data`, `voting`, alias=`tree`
* `serial`, 單臺機器的 tree learner
* `feature`, alias=`feature_parallel`, 特征并行的 tree learner
* `data`, alias=`data_parallel`, 數據并行的 tree learner
* `voting`, alias=`voting_parallel`, 投票并行的 tree learner
* 請閱讀 [并行學習指南](./Parallel-Learning-Guide.rst) 來了解更多細節
* `num_threads`, default=`OpenMP_default`, type=int, alias=`num_thread`, `nthread`
* LightGBM 的線程數
* 為了更快的速度, 將此設置為真正的 CPU 內核數, 而不是線程的數量 (大多數 CPU 使用超線程來使每個 CPU 內核生成 2 個線程)
* 當你的數據集小的時候不要將它設置的過大 (比如, 當數據集有 10,000 行時不要使用 64 線程)
* 請注意, 任務管理器或任何類似的 CPU 監視工具可能會報告未被充分利用的內核. **這是正常的**
* 對于并行學習, 不應該使用全部的 CPU 內核, 因為這會導致網絡性能不佳
* `device`, default=`cpu`, options=`cpu`, `gpu`
* 為樹學習選擇設備, 你可以使用 GPU 來獲得更快的學習速度
* **Note**: 建議使用較小的 `max_bin` (e.g. 63) 來獲得更快的速度
* **Note**: 為了加快學習速度, GPU 默認使用32位浮點數來求和. 你可以設置 `gpu_use_dp=true` 來啟用64位浮點數, 但是它會使訓練速度降低
* **Note**: 請參考 [安裝指南](./Installation-Guide.rst#build-gpu-version) 來構建 GPU 版本
## 用于控制模型學習過程的參數
* `max_depth`, default=`-1`, type=int
* 限制樹模型的最大深度. 這可以在 `#data` 小的情況下防止過擬合. 樹仍然可以通過 leaf-wise 生長.
* `< 0` 意味著沒有限制.
* `min_data_in_leaf`, default=`20`, type=int, alias=`min_data_per_leaf` , `min_data`, `min_child_samples`
* 一個葉子上數據的最小數量. 可以用來處理過擬合.
* `min_sum_hessian_in_leaf`, default=`1e-3`, type=double, alias=`min_sum_hessian_per_leaf`, `min_sum_hessian`, `min_hessian`, `min_child_weight`
* 一個葉子上的最小 hessian 和. 類似于 `min_data_in_leaf`, 可以用來處理過擬合.
* `feature_fraction`, default=`1.0`, type=double, `0.0 < feature_fraction < 1.0`, alias=`sub_feature`, `colsample_bytree`
* 如果 `feature_fraction` 小于 `1.0`, LightGBM 將會在每次迭代中隨機選擇部分特征. 例如, 如果設置為 `0.8`, 將會在每棵樹訓練之前選擇 80% 的特征
* 可以用來加速訓練
* 可以用來處理過擬合
* `feature_fraction_seed`, default=`2`, type=int
* `feature_fraction` 的隨機數種子
* `bagging_fraction`, default=`1.0`, type=double, `0.0 < bagging_fraction < 1.0`, alias=`sub_row`, `subsample`
* 類似于 `feature_fraction`, 但是它將在不進行重采樣的情況下隨機選擇部分數據
* 可以用來加速訓練
* 可以用來處理過擬合
* **Note**: 為了啟用 bagging, `bagging_freq` 應該設置為非零值
* `bagging_freq`, default=`0`, type=int, alias=`subsample_freq`
* bagging 的頻率, `0` 意味著禁用 bagging. `k` 意味著每 `k` 次迭代執行bagging
* **Note**: 為了啟用 bagging, `bagging_fraction` 設置適當
* `bagging_seed` , default=`3`, type=int, alias=`bagging_fraction_seed`
* bagging 隨機數種子
* `early_stopping_round`, default=`0`, type=int, alias=`early_stopping_rounds`, `early_stopping`
* 如果一個驗證集的度量在 `early_stopping_round` 循環中沒有提升, 將停止訓練
* `lambda_l1`, default=`0`, type=double, alias=`reg_alpha`
* L1 正則
* `lambda_l2`, default=`0`, type=double, alias=`reg_lambda`
* L2 正則
* `min_split_gain`, default=`0`, type=double, alias=`min_gain_to_split`
* 執行切分的最小增益
* `drop_rate`, default=`0.1`, type=double
* 僅僅在 `dart` 時使用
* `skip_drop`, default=`0.5`, type=double
* 僅僅在 `dart` 時使用, 跳過 drop 的概率
* `max_drop`, default=`50`, type=int
* 僅僅在 `dart` 時使用, 一次迭代中刪除樹的最大數量
* `<=0` 意味著沒有限制
* `uniform_drop`, default=`false`, type=bool
* 僅僅在 `dart` 時使用, 如果想要均勻的刪除, 將它設置為 `true`
* `xgboost_dart_mode`, default=`false`, type=bool
* 僅僅在 `dart` 時使用, 如果想要使用 xgboost dart 模式, 將它設置為 `true`
* `drop_seed`, default=`4`, type=int
* 僅僅在 `dart` 時使用, 選擇 dropping models 的隨機數種子
* `top_rate`, default=`0.2`, type=double
* 僅僅在 `goss` 時使用, 大梯度數據的保留比例
* `other_rate`, default=`0.1`, type=int
* 僅僅在 `goss` 時使用, 小梯度數據的保留比例
* `min_data_per_group`, default=`100`, type=int
* 每個分類組的最小數據量
* `max_cat_threshold`, default=`32`, type=int
* 用于分類特征
* 限制分類特征的最大閾值
* `cat_smooth`, default=`10`, type=double
* 用于分類特征
* 這可以降低噪聲在分類特征中的影響, 尤其是對數據很少的類別
* `cat_l2`, default=`10`, type=double
* 分類切分中的 L2 正則
* `max_cat_to_onehot`, default=`4`, type=int
* 當一個特征的類別數小于或等于 `max_cat_to_onehot` 時, one-vs-other 切分算法將會被使用
* `top_k`, default=`20`, type=int, alias=`topk`
* 被使用在 [Voting parallel](./Parallel-Learning-Guide.rst#choose-appropriate-parallel-algorithm) 中
* 將它設置為更大的值可以獲得更精確的結果, 但會減慢訓練速度
## IO 參數
* `max_bin`, default=`255`, type=int
* 工具箱的最大數特征值決定了容量 工具箱的最小數特征值可能會降低訓練的準確性, 但是可能會增加一些一般的影響(處理過度學習)
* LightGBM 將根據 `max_bin` 自動壓縮內存。 例如, 如果 maxbin=255, 那么 LightGBM 將使用 uint8t 的特性值
* `max_bin`, default=`255`, type=int
* `min_data_in_bin`, default=`3`, type=int - 單個數據箱的最小數, 使用此方法避免 one-data-one-bin(可能會過度學習)
* `data_r和om_seed`, default=`1`, type=int
* 并行學習數據分隔中的隨機種子 (不包括并行功能)
* `output_model`, default=`LightGBM_model.txt`, type=string, alias=`model_output`, `model_out`
* 培訓中輸出的模型文件名
* `input_model`, default=`""`, type=string, alias=`model_input`, `model_in`
* 輸入模型的文件名
* 對于 `prediction` 任務, 該模型將用于預測數據
* 對于 `train` 任務, 培訓將從該模型繼續
* `output_result`, default=`LightGBM_predict_result.txt`, type=string, alias=`predict_result`, `prediction_result`
* `prediction` 任務的預測結果文件名
* `model_format`, default=`text`, type=multi-enum, 可選項=`text`, `proto`
* 保存和加載模型的格式
* `text`, 使用文本字符串
* `proto`, 使用協議緩沖二進制格式
* 您可以通過使用逗號來進行多種格式的保存, 例如 `text,proto`. 在這種情況下, `model_format` 將作為后綴添加 `output_model`
* **Note**: 不支持多種格式的加載
* **Note**: 要使用這個參數, 您需要使用 build 版本 <./Installation-Guide.rst#protobuf-support>`__
* `pre_partition`, default=`false`, type=bool, alias=`is_pre_partition`
* 用于并行學習(不包括功能并行)
* `true` 如果訓練數據 pre-partitioned, 不同的機器使用不同的分區
* `is_sparse`, default=`true`, type=bool, alias=`is_enable_sparse`, `enable_sparse`
* 用于 enable/disable 稀疏優化. 設置 `false` 就禁用稀疏優化
* `two_round`, default=`false`, type=bool, alias=`two_round_loading`, `use_two_round_loading`
* 默認情況下, LightGBM 將把數據文件映射到內存, 并從內存加載特性。 這將提供更快的數據加載速度。但當數據文件很大時, 內存可能會耗盡
* 如果數據文件太大, 不能放在內存中, 就把它設置為 `true`
* `save_binary`, default=`false`, type=bool, alias=`is_save_binary`, `is_save_binary_file`
* 如果設置為 `true` LightGBM 則將數據集(包括驗證數據)保存到二進制文件中。 可以加快數據加載速度。
* `verbosity`, default=`1`, type=int, alias=`verbose`
* `<0` = 致命的, `=0` = 錯誤 (警告), `>0` = 信息
* `header`, default=`false`, type=bool, alias=`has_header`
* 如果輸入數據有標識頭, 則在此處設置 `true`
* `label`, default=`""`, type=string, alias=`label_column`
* 指定標簽列
* 用于索引的數字, e.g. `label=0` 意味著 column_0 是標簽列
* 為列名添加前綴 `name:` , e.g. `label=name:is_click`
* `weight`, default=`""`, type=string, alias=`weight_column`
* 列的指定
* 用于索引的數字, e.g. `weight=0` 表示 column_0 是權重點
* 為列名添加前綴 `name:`, e.g. `weight=name:weight`
* **Note**: 索引從 `0` 開始. 當傳遞 type 為索引時, 它不計算標簽列, 例如當標簽為 0 時, 權重為列 1, 正確的參數是權重值為 0
* `query`, default=`""`, type=string, alias=`query_column`, `group`, `group_column`
* 指定 query/group ID 列
* 用數字做索引, e.g. `query=0` 意味著 column_0 是這個查詢的 Id
* 為列名添加前綴 `name:` , e.g. `query=name:query_id`
* **Note**: 數據應按照 query_id. 索引從 `0` 開始. 當傳遞 type 為索引時, 它不計算標簽列, 例如當標簽為列 0, 查詢 id 為列 1 時, 正確的參數是查詢 =0
* `ignore_column`, default=`""`, type=string, alias=`ignore_feature`, `blacklist`
* 在培訓中指定一些忽略的列
* 用數字做索引, e.g. `ignore_column=0,1,2` 意味著 column_0, column_1 和 column_2 將被忽略
* 為列名添加前綴 `name:` , e.g. `ignore_column=name:c1,c2,c3` 意味著 c1, c2 和 c3 將被忽略
* **Note**: 只在從文件直接加載數據的情況下工作
* **Note**: 索引從 `0` 開始. 它不包括標簽欄
* `categorical_feature`, default=`""`, type=string, alias=`categorical_column`, `cat_feature`, `cat_column`
* 指定分類特征
* 用數字做索引, e.g. `categorical_feature=0,1,2` 意味著 column_0, column_1 和 column_2 是分類特征
* 為列名添加前綴 `name:`, e.g. `categorical_feature=name:c1,c2,c3` 意味著 c1, c2 和 c3 是分類特征
* **Note**: 只支持分類與 `int` type. 索引從 `0` 開始. 同時它不包括標簽欄
* **Note**: 負值的值將被視為 **missing values**
* `predict_raw_score`, default=`false`, type=bool, alias=`raw_score`, `is_predict_raw_score`
* 只用于 `prediction` 任務
* 設置為 `true` 只預測原始分數
* 設置為 `false` 只預測分數
* `predict_leaf_index`, default=`false`, type=bool, alias=`leaf_index`, `is_predict_leaf_index`
* 只用于 `prediction` 任務
* 設置為 `true` to predict with leaf index of all trees
* `predict_contrib`, default=`false`, type=bool, alias=`contrib`, `is_predict_contrib`
* 只用于 `prediction` 任務
* 設置為 `true` 預估 [SHAP values](https://arxiv.org/abs/1706.06060), 這代表了每個特征對每個預測的貢獻. 生成的特征+1的值, 其中最后一個值是模型輸出的預期值, 而不是訓練數據
* `bin_construct_sample_cnt`, default=`200000`, type=int, alias=`subsample_for_bin`
* 用來構建直方圖的數據的數量
* 在設置更大的數據時, 會提供更好的培訓效果, 但會增加數據加載時間
* 如果數據非常稀疏, 則將其設置為更大的值
* `num_iteration_predict`, default=`-1`, type=int
* 只用于 `prediction` 任務
* 用于指定在預測中使用多少經過培訓的迭代
* `<= 0` 意味著沒有限制
* `pred_early_stop`, default=`false`, type=bool
* 如果 `true` 將使用提前停止來加速預測。可能影響精度
* `pred_early_stop_freq`, default=`10`, type=int
* 檢查早期early-stopping的頻率
* `pred_early_stop_margin`, default=`10.0`, type=double
* t提前early-stopping的邊際閾值
* `use_missing`, default=`true`, type=bool
* 設置為 `false` 禁用丟失值的特殊句柄
* `zero_as_missing`, default=`false`, type=bool
* 設置為 `true` 將所有的0都視為缺失的值 (包括 libsvm/sparse 矩陣中未顯示的值)
* 設置為 `false` 使用 `na` 代表缺失值
* `init_score_file`, default=`""`, type=string
* 訓練初始分數文件的路徑, `""` 將使用 `train_data_file` + `.init` (如果存在)
* `valid_init_score_file`, default=`""`, type=multi-string
* 驗證初始分數文件的路徑, `""` 將使用 `valid_data_file` + `.init` (如果存在)
* 通過 `,` 對multi-validation進行分離
## 目標參數
* `sigmoid`, default=`1.0`, type=double
* sigmoid 函數的參數. 將用于 `binary` 分類 和 `lambdarank`
* `alpha`, default=`0.9`, type=double
* [Huber loss](https://en.wikipedia.org/wiki/Huber_loss) 和 [Quantile regression](https://en.wikipedia.org/wiki/Quantile_regression) 的參數. 將用于 `regression` 任務
* `fair_c`, default=`1.0`, type=double
* [Fair loss](https://www.kaggle.com/c/allstate-claims-severity/discussion/24520) 的參數. 將用于 `regression` 任務
* `gaussian_eta`, default=`1.0`, type=double
* 控制高斯函數的寬度的參數. 將用于 `regression_l1` 和 `huber` losses
* `poisson_max_delta_step`, default=`0.7`, type=double
* [Poisson regression](https://en.wikipedia.org/wiki/Poisson_regression) 的參數用于維護優化
* `scale_pos_weight`, default=`1.0`, type=double
* 正值的權重 `binary` 分類 任務
* `boost_from_average`, default=`true`, type=bool
* 只用于 `regression` 任務
* 將初始分數調整為更快收斂速度的平均值
* `is_unbalance`, default=`false`, type=bool, alias=`unbalanced_sets`
* 用于 `binary` 分類
* 如果培訓數據不平衡 設置為 `true`
* `max_position`, default=`20`, type=int
* 用于 `lambdarank`
* 將在這個 [NDCG](https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG) 位置優化
* `label_gain`, default=`0,1,3,7,15,31,63,...`, type=multi-double
* 用于 `lambdarank`
* 有關獲得標簽. 列如, 如果使用默認標簽增益 這個 `2` 的標簽則是 `3`
* 使用 `,` 分隔
* `num_class`, default=`1`, type=int, alias=`num_classes`
* 只用于 `multiclass` 分類
* `reg_sqrt`, default=`false`, type=bool
* 只用于 `regression`
* 適合``sqrt(label)`` 相反, 預測結果也會自動轉換成 `pow2(prediction)`
## 度量參數
* `metric`, default={`l2` for regression}, {`binary_logloss` for binary classification}, {`ndcg` for lambdarank}, type=multi-enum, options=`l1`, `l2`, `ndcg`, `auc`, `binary_logloss`, `binary_error` …
* `l1`, absolute loss, alias=`mean_absolute_error`, `mae`
* `l2`, square loss, alias=`mean_squared_error`, `mse`
* `l2_root`, root square loss, alias=`root_mean_squared_error`, `rmse`
* `quantile`, [Quantile regression](https://en.wikipedia.org/wiki/Quantile_regression)
* `huber`, [Huber loss](https://en.wikipedia.org/wiki/Huber_loss)
* `fair`, [Fair loss](https://www.kaggle.com/c/allstate-claims-severity/discussion/24520)
* `poisson`, [Poisson regression](https://en.wikipedia.org/wiki/Poisson_regression)
* `ndcg`, [NDCG](https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG)
* `map`, [MAP](https://en.wikipedia.org/wiki/Information_retrieval#Mean_average_precision)
* `auc`, [AUC](https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve)
* `binary_logloss`, [log loss](https://www.kaggle.com/wiki/LogLoss)
* `binary_error`, 樣本: `0` 的正確分類, `1` 錯誤分類
* `multi_logloss`, mulit-class 損失日志分類
* `multi_error`, error rate for mulit-class 出錯率分類
* `xentropy`, cross-entropy (與可選的線性權重), alias=`cross_entropy`
* `xentlambda`, “intensity-weighted” 交叉熵, alias=`cross_entropy_lambda`
* `kldiv`, [Kullback-Leibler divergence](https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence), alias=`kullback_leibler`
* 支持多指標, 使用 `,` 分隔
* `metric_freq`, default=`1`, type=int
* 頻率指標輸出
* `train_metric`, default=`false`, type=bool, alias=`training_metric`, `is_training_metric`
* 如果你需要輸出訓練的度量結果則設置 `true`
* `ndcg_at`, default=`1,2,3,4,5`, type=multi-int, alias=`ndcg_eval_at`, `eval_at`
* [NDCG](https://en.wikipedia.org/wiki/Discounted_cumulative_gain#Normalized_DCG) 職位評估, 使用 `,` 分隔
## 網絡參數
以下參數用于并行學習, 只用于基本(socket)版本。
* `num_machines`, default=`1`, type=int, alias=`num_machine`
* 用于并行學習的并行學習應用程序的數量
* 需要在socket和mpi版本中設置這個
* `local_listen_port`, default=`12400`, type=int, alias=`local_port`
* 監聽本地機器的TCP端口
* 在培訓之前, 您應該再防火墻設置中放開該端口
* `time_out`, default=`120`, type=int
* 允許socket幾分鐘內超時
* `machine_list_file`, default=`""`, type=string, alias=`mlist`
* 為這個并行學習應用程序列出機器的文件
* 每一行包含一個IP和一個端口為一臺機器。格式是ip port, 由空格分隔
## GPU 參數
* `gpu_platform_id`, default=`-1`, type=int
* OpenCL 平臺 ID. 通常每個GPU供應商都會公開一個OpenCL平臺。
* default為 `-1`, 意味著整個系統平臺
* `gpu_device_id`, default=`-1`, type=int
* OpenCL設備ID在指定的平臺上。 在選定的平臺上的每一個GPU都有一個唯一的設備ID
* default為``-1``, 這個default意味著選定平臺上的設備
* `gpu_use_dp`, default=`false`, type=bool
* 設置為 `true` 在GPU上使用雙精度GPU (默認使用單精度)
## 模型參數
該特性僅在命令行版本中得到支持。
* `convert_model_language`, default=`""`, type=string
* 只支持``cpp``
* 如果 `convert_model_language` 設置為 `task``時 該模型也將轉換為 ``train`,
* `convert_model`, default=`"gbdt_prediction.cpp"`, type=string
* 轉換模型的輸出文件名
## 其他
### 持續訓練輸入分數
LightGBM支持對初始得分進行持續的培訓。它使用一個附加的文件來存儲這些初始值, 如下:
```
0.5
-0.1
0.9
...
```
它意味著最初的得分第一個數據行是 `0.5`,第二個是 ``-0.1` 等等。 初始得分文件與數據文件逐行對應, 每一行有一個分數。 如果數據文件的名稱是 `train.txt`, 最初的分數文件應該被命名為 ``train.txt.init` 與作為數據文件在同一文件夾。 在這種情況下, LightGBM 將自動加載初始得分文件, 如果它存在的話。
### 權重數據
LightGBM 加權訓練。它使用一個附加文件來存儲權重數據, 如下:
```
1.0
0.5
0.8
...
```
它意味的重壓著第一個數據行是 `1.0`, 第二個是 `0.5`, 等等. 權重文件按行與數據文件行相對應, 每行的權重為. 如果數據文件的名稱是 `train.txt`, 應該將重量文件命名為 `train.txt.weight` 與數據文件相同的文件夾. 在這種情況下, LightGBM 將自動加載權重文件, 如果它存在的話.
**update**: 現在可以在數據文件中指定 `weight` 列。請參閱以上參數的參數.
### 查詢數據
對于 LambdaRank 的學習, 它需要查詢信息來訓練數據. LightGBM 使用一個附加文件來存儲查詢數據, 如下:
```
27
18
67
...
```
它意味著第一個 `27` 行樣本屬于一個查詢和下一個 `18` 行屬于另一個, 等等. **Note**: 數據應該由查詢來排序.
如果數據文件的名稱是``train.txt`,這個查詢文件應該被命名為``train.txt.query``查詢在相同的培訓數據文件夾中。 在這種情況下, LightGBM將自動加載查詢文件, 如果它存在的話。
**update**: 現在可以在數據文件中指定特定的 query/group id。請參閱上面的參數組。