第一章 特征工程基础
1.1 什么是特征工程
特征工程是将原始数据转换为特征的过程,这些特征能够更好地表示预测模型的潜在问题。
- 特征提取:从原始数据中提取有用信息
- 特征转换:对特征进行数学变换
- 特征选择:选择最有信息量的特征
- 特征创建:创建新的衍生特征
💡 特征工程是机器学习中最重要的环节之一,好的特征可以大幅提升模型性能。
第二章 特征编码
2.1 类别特征编码
将类别特征转换为数值特征是特征工程的重要步骤。
import pandas as pd
# 创建数据
data = {
'category': ['A', 'B', 'C', 'A', 'B', 'C'],
'value': [10, 20, 30, 15, 25, 35]
}
df = pd.DataFrame(data)
# 独热编码
one_hot = pd.get_dummies(df['category'], prefix='category')
df_encoded = pd.concat([df, one_hot], axis=1)
print("独热编码结果:")
print(df_encoded)
2.2 标签编码
将类别特征转换为整数标签。
from sklearn.preprocessing import LabelEncoder
# 创建数据
data = {'color': ['红色', '蓝色', '绿色', '红色', '蓝色']}
df = pd.DataFrame(data)
# 标签编码
encoder = LabelEncoder()
df['color_encoded'] = encoder.fit_transform(df['color'])
print("标签编码结果:")
print(df)
print(f"类别映射: {dict(zip(encoder.classes_, encoder.transform(encoder.classes_)))}")
第三章 特征缩放
3.1 标准化与归一化
特征缩放确保不同特征具有相似的尺度。
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# 创建数据
data = {'age': [25, 30, 35, 40, 45], 'income': [50000, 70000, 90000, 110000, 130000]}
df = pd.DataFrame(data)
# 标准化(Z-score标准化)
scaler = StandardScaler()
df_standardized = scaler.fit_transform(df)
print("标准化结果:")
print(pd.DataFrame(df_standardized, columns=['age', 'income']))
# 归一化(Min-Max缩放)
scaler = MinMaxScaler()
df_normalized = scaler.fit_transform(df)
print("\n归一化结果:")
print(pd.DataFrame(df_normalized, columns=['age', 'income']))
第四章 特征选择
4.1 特征选择方法
选择最有信息量的特征可以提高模型效率和性能。
💻 在线代码编辑器
练习题(共5题)
练习 1:独热编码
对类别特征进行独热编码。
练习 2:标签编码
使用LabelEncoder对类别特征进行编码。
练习 3:标准化
对数据进行标准化处理。
练习 4:归一化
对数据进行Min-Max归一化。
练习 5:特征选择
使用SelectKBest选择最佳特征。
测试题(共 5 题,满分 100 分)
1. 独热编码适合处理哪种类型的特征?
2. StandardScaler的作用是什么?
3. LabelEncoder适用于哪种情况?
4. MinMaxScaler将数据缩放到什么范围?
5. 特征选择的主要目的是什么?
作业提交
📝 特征工程作业
请完成以下任务:
- 创建包含类别特征和数值特征的数据集
- 对类别特征进行独热编码
- 对数值特征进行标准化
- 使用特征选择方法选择重要特征
💻 作业代码提交