特征衍生应该在特征筛选前还是后
时间: 2023-06-13 21:07:32 浏览: 42
特征衍生通常应该在特征筛选之前。因为特征衍生可以增加原始特征的数量,从而为模型提供更多的信息和更多的学习能力。在特征筛选之前进行特征衍生,可以帮助模型更好地理解数据,提高预测准确度。而如果在特征筛选之后再进行特征衍生,那么可能会导致一些有用的特征被丢弃,从而影响模型的性能。因此,一般建议在进行特征筛选之前进行特征衍生。
相关问题
如何用xgboost做特征衍生,代码实现一下
可以使用 xgboost 自带的特征重要性排序来进行特征选择和衍生。具体步骤如下:
1. 使用 xgboost 训练模型并得出各个特征的重要性系数
2. 根据重要性系数,选择出较为重要的特征
3. 对选出的重要特征进行一些组合和变换,例如两个特征求和、平方、开平方等等
以下是代码实现:
```python
import xgboost as xgb
import pandas as pd
import numpy as np
# 加载数据
data = pd.read_csv('data.csv')
X = data.drop('target', axis=1)
y = data.target
# 利用 xgboost 计算特征重要性
model = xgb.XGBRegressor()
model.fit(X, y)
importance = model.feature_importances_
# 筛选重要特征
important_features = X.columns[importance > np.mean(importance)]
# 特征衍生
for i in range(len(important_features)):
for j in range(i+1, len(important_features)):
colname = '{}_{}'.format(important_features[i], important_features[j])
X[colname] = X[important_features[i]] + X[important_features[j]]
# 输出衍生特征后的数据
print(X.head())
```
以上是一个简单的特征衍生过程,需要根据具体数据和问题进行调整和优化。
特征衍生有哪些方法,谈谈自己的想法,在处理分类问题的时候通常用什么方法
特征衍生有很多方法,常见的方法有多项式特征衍生、交叉特征衍生、离散化特征衍生等。我个人认为,特征衍生主要是为了从原始特征中提取更加有用的信息,进而提高模型的预测效果。在处理分类问题时,通常会使用特征筛选、特征正则化和特征转换等方法来提高特征的表现力和鲁棒性,从而达到更好的分类效果。