请写出一段特征工程代码,输出有用特征名字
时间: 2023-06-14 21:04:34 浏览: 43
以下是一个简单的特征工程代码示例,用于将文本数据转换为数值特征:
```
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
# 加载数据
data = pd.read_csv('data.csv')
# 创建 CountVectorizer 对象
vectorizer = CountVectorizer(stop_words='english')
# 将文本数据转换为数值特征
X = vectorizer.fit_transform(data['text'])
# 获取特征名字
feature_names = vectorizer.get_feature_names()
# 输出有用特征名字
useful_features = []
for i, feature in enumerate(feature_names):
if X[:, i].sum() > 10: # 设置阈值为 10
useful_features.append(feature)
print(useful_features)
```
该代码使用 CountVectorizer 对象将文本数据转换为数值特征,并且设置了阈值为 10,只输出在数据集中出现次数大于 10 的特征名字,这些特征名字可以作为有用特征使用。
相关问题
请写出一段特征工程代码,输出有用特征
假设我们有一个数据集包含以下特征:
- 年龄
- 性别
- 是否有车
- 是否有房
- 收入
- 是否有信用卡
- 是否有贷款
- 是否有婚姻状况
我们可以进行如下特征工程处理:
```python
import pandas as pd
import numpy as np
data = pd.read_csv('data.csv')
# 将分类变量转换为二进制变量
data['is_male'] = np.where(data['gender'] == 'Male', 1, 0)
data['has_car'] = np.where(data['car'] == 'Yes', 1, 0)
data['has_house'] = np.where(data['house'] == 'Yes', 1, 0)
data['has_credit_card'] = np.where(data['credit_card'] == 'Yes', 1, 0)
data['has_loan'] = np.where(data['loan'] == 'Yes', 1, 0)
data['is_married'] = np.where(data['marital_status'] == 'Married', 1, 0)
# 删除原始的分类变量
data = data.drop(['gender', 'car', 'house', 'credit_card', 'loan', 'marital_status'], axis=1)
# 对数值变量进行标准化处理
num_vars = ['age', 'income']
data[num_vars] = (data[num_vars] - data[num_vars].mean()) / data[num_vars].std()
# 创建新的特征
data['age_income_ratio'] = data['age'] / data['income']
data['income_squared'] = data['income'] ** 2
# 输出处理后的数据集
print(data.head())
```
在这个例子中,我们进行了以下特征工程处理:
1. 将分类变量转换为二进制变量,这可以使模型更容易理解和处理。
2. 对数值变量进行标准化,可以使模型更容易学习和处理。
3. 创建了两个新的特征,用于捕获数据集中的更多信息。
输出的结果应该包含处理后的数据集,它应该包含更多有用的特征,这些特征可以帮助我们更好地理解和预测数据集。
请写出一段特征工程代码,包含13个特征,输出有用特征名字
以下是一个简单的特征工程代码示例,包含13个特征:
```python
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 特征1:年龄(数值型)
data['age'] = 2021 - data['birth_year']
# 特征2:性别(分类型)
data['gender'] = data['gender'].map({'male': 0, 'female': 1})
# 特征3:身高(数值型)
data['height'] = data['height_cm']
# 特征4:体重(数值型)
data['weight'] = data['weight_kg']
# 特征5:BMI(数值型)
data['bmi'] = data['weight'] / (data['height'] / 100) ** 2
# 特征6:收缩压(数值型)
data['sbp'] = data['systolic_bp_mmhg']
# 特征7:舒张压(数值型)
data['dbp'] = data['diastolic_bp_mmhg']
# 特征8:血糖(数值型)
data['glucose'] = data['fasting_glucose_mg_dl']
# 特征9:是否吸烟(分类型)
data['smoking'] = data['smoking'].map({'never': 0, 'former': 1, 'current': 2})
# 特征10:是否饮酒(分类型)
data['alcohol'] = data['alcohol'].map({'never': 0, 'former': 1, 'current': 2})
# 特征11:是否运动(分类型)
data['exercise'] = data['exercise'].map({'none': 0, '1-2 times per week': 1, '3-4 times per week': 2, '5 or more times per week': 3})
# 特征12:睡眠时间(数值型)
data['sleep'] = data['sleep_hours']
# 特征13:是否有心血管疾病(分类型)
data['cardio'] = data['cardio'].astype(int)
# 输出有用特征名字
useful_features = ['age', 'gender', 'height', 'weight', 'bmi', 'sbp', 'dbp', 'glucose', 'smoking', 'alcohol', 'exercise', 'sleep', 'cardio']
print('有用特征:', useful_features)
```
说明:以上特征均为模拟数据,仅供参考。在实际特征工程中,需要根据数据集的具体情况进行选择和处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)