python选取特征值
时间: 2023-11-05 19:05:17 浏览: 128
雅可比法_特征值_
特征选择是机器学习中一个重要的步骤,帮助我们从原始特征集中选择出最具有代表性和预测性能的特征子集。在Python中,我们可以使用多种方法进行特征选择。其中一些常见的方法包括基于统计的方法、递归特征消除和基于决策树的方法。
基于统计的方法是使用统计指标来评估每个特征与目标变量之间的相关性,并选择具有最高相关性的特征。在Python中,我们可以使用`SelectKBest`和`chi2`函数来实现。例如,下面的代码使用`SelectKBest`和`chi2`函数选择了`iris`数据集中最相关的2个特征:
```python
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
x, y = load_iris(return_X_y=True)
x_new = SelectKBest(chi2, k=2).fit_transform(x, y)
```
递归特征消除(RFE)是另一种常见的特征选择方法,它通过递归地构建模型并使用模型的输出来判断特征的重要性。在Python中,我们可以使用`RFE`函数来实现。以下是一个示例代码:
```python
from sklearn.feature_selection import RFE
rfe = RFE(estimator, n_features_to_select, step)
rfe = rfe.fit(x, y)
print(rfe.support_)
print(rfe.ranking_)
```
基于决策树的方法也是常用的特征选择方法之一。这些方法利用决策树模型的特征重要性来进行特征选择。在Python中,我们可以使用各种基于决策树的模型(如随机森林、XGBoost和LightGBM)来输出特征重要性。以下是一个使用LightGBM模型的示例代码:
```python
from lightgbm import LGBMClassifier
import matplotlib.pyplot as plt
model = LGBMClassifier()
model.fit(x, y)
plot_importance(model, max_num_features=20, figsize=(10,5), importance_type='split')
plt.show()
feature_importance = pd.DataFrame({
'feature': model.booster_.feature_name(),
'gain': model.booster_.feature_importance('gain'),
'split': model.booster_.feature_importance('split')
}).sort_values('gain', ascending=False)
```
请注意,上述代码中的`estimator`可以是任何你选择的模型。
阅读全文