在XGBoost的原生Python接口中(非sklearn接口),查看特征重要性的方法有多種,下面是對這些方法的專業(yè)分析:
1. **`.get_score()`**:
- 正確答案。這是XGBoost中用于獲取特征分?jǐn)?shù)的方法。它返回一個(gè)字典,其中鍵是特征名稱,值是對應(yīng)的特征重要性得分。默認(rèn)情況下,得分是基于特征在樹模型中作為劃分點(diǎn)出現(xiàn)的次數(shù)。
2. **`.get_fscore()`**:
- 正確答案。這實(shí)際上是`.get_score()`的一個(gè)別名,功能完全相同,因此也是一個(gè)正確的方法。
3. **`.feature_importance`**:
- 錯(cuò)誤答案。在XGBoost原生接口中,沒有`.feature_importance`這個(gè)方法或?qū)傩詠慝@取特征重要性。
4. **`.best_features`**:
- 錯(cuò)誤答案。XGBoost中沒有`.best_features`這個(gè)方法或?qū)傩浴L卣髦匾孕枰ㄟ^其他明確的方法來獲取。
綜上,正確答案是:**B: .get_score() 和 C: .get_fscore()**。下面是一個(gè)簡要示例代碼,演示如何使用這些方法:
```python
import xgboost as xgb
# 假設(shè)我們已經(jīng)訓(xùn)練了一個(gè)XGBoost模型
# dtrain 是 DMatrix 格式的訓(xùn)練數(shù)據(jù)
# params 是訓(xùn)練過程中使用的參數(shù)
bst = xgb.train(params, dtrain)
# 獲取特征重要性
importance_scores = bst.get_score()
# 使用別名獲取特征重要性
fscore_scores = bst.get_fscore()
print("Feature Importance using get_score:")
print(importance_scores)
print("\nFeature Importance using get_fscore:")
print(fscore_scores)
```
通過這種方式,可以獲取每個(gè)特征的重要性分?jǐn)?shù),這些分?jǐn)?shù)可以用于進(jìn)一步分析或模型優(yōu)化。