# 進階主題
## 缺失值的處理
* LightGBM 通過默認的方式來處理缺失值,你可以通過設置 `use_missing=false` 來使其無效。
* LightGBM 通過默認的的方式用 NA (NaN) 去表示缺失值,你可以通過設置 `zero_as_missing=true` 將其變為零。
* 當設置 `zero_as_missing=false` (默認)時,在稀疏矩陣里 (和LightSVM) ,沒有顯示的值視為零。
* 當設置 `zero_as_missing=true` 時, NA 和 0 (包括在稀疏矩陣里,沒有顯示的值)視為缺失。
## 分類特征的支持
* 當使用本地分類特征,LightGBM 能提供良好的精確度。不像簡單的 one-hot 編碼,LightGBM 可以找到分類特征的最優分割。 相對于 one-hot 編碼結果,LightGBM 可以提供更加準確的最優分割。
* 用 `categorical_feature` 指定分類特征 參考 [Parameters](./Parameters.rst) 的參數 `categorical_feature`
* 首先需要轉換為 int 類型,并且只支持非負數。 將其轉換為連續范圍更好。
* 使用 `min_data_per_group`, `cat_smooth` 去處理過擬合(當 `#data` 比較小,或者 `#category` 比較大)
* 對于具有高基數的分類特征(`#category` 比較大), 最好把它轉化為數字特征。
## LambdaRank
* 標簽應該是 int 類型,較大的數字代表更高的相關性(例如:0:壞,1:公平,2:好,3:完美)。
* 使用 `label_gain` 設置增益(重量)的 `int` 標簽。
* 使用 `max_position` 設置 NDCG 優化位置。
## 參數優化
* 參考 [參數優化](./Parameters-Tuning.rst) .
## 并行學習
* 參考 [并行學習指南](./Parallel-Learning-Guide.rst) .
## GPU 的支持
* 參考 [GPU 教程](./GPU-Tutorial.rst) 和 [GPU Targets](./GPU-Targets.rst)
## GCC 用戶的建議 (MinGW, *nix)
* 參考 [gcc 建議](./gcc-Tips.rst).