机器学习预处理:特征工程

什么是特征工程

       特征是⽤于描述数据中的各种属性、变量或维度的信息,它们是模型⽤来做 出预测或分类的输⼊。特征⼯程是使⽤专业背景知识和技巧处理数据,使得特征能 在机器学习算法上发挥更好的作⽤的过程。良好的特征⼯程可以显著提⾼模型的性能,⽽糟糕的特征选择或构建可能导致模型性能下降。

意义:会直接影响机器学习的效果

 特征⼯程的主要⽬标包括:

1. 特征选择:选择最相关的特征,以减少维度和噪声,提⾼模型的泛化能⼒。这 可以通过统计⽅法、领域知识、特征重要性评估等⽅式来完成。

2. 特征构建:创建新的特征,以提供更多的信息或改善模型的性能。这可能包括 将原始特征组合、进⾏数学变换、提取时间序列特征等操作。

3. 特征缩放:确保特征具有相似的尺度,以避免某些特征对模型的权重产⽣不适 当的影响。常⻅的缩放⽅法包括标准化和归⼀化。

4. 处理缺失数据:处理缺失值,可以使⽤插补⽅法来填充缺失值,或者考虑是否 删除包含缺失值的样本。

5. 处理分类特征:将分类特征进⾏编码,例如独热编码(One-Hot Encoding) 或标签编码(Label Encoding),以使其适⽤于机器学习模型。

6. 特征交叉:将不同特征之间的关联性考虑在内,通过创建特征交叉来提供更多 信息。

7. 特征选择和降维:使⽤降维技术(如主成分分析PCA)来减少特征的数量,以 提⾼模型的效率和可解释性。

基本预处理

  • 基本预处理:缺失值处理
  1. 删除属性或者删除样本:如果⼤部分样本该属性都缺失,这个属性能提供的信息有限,可以选择放弃使⽤该维属性
  2. 统计填充:对于缺失值的属性,尤其是数值类型的属性,根据所有样本关于这维属性的统计值对其进⾏填充,如使⽤平均数、中位数、众数、 最⼤值、最⼩值等,具体选择哪种统计值需要具体问题具体分析。
  3. 统⼀填充:常⽤的统⼀填充值有:“空”、“0”、“正⽆穷”、“负⽆ 穷”等。
  4. 预测/模型填充:可以通过预测模型利⽤不存在缺失值的属性来预测缺失值,也就是先⽤预测模型把数据填充后再做进⼀步的⼯作,如统计、 学习等。虽然这种⽅法⽐较复杂,但是最后得到的结果⽐较好。 pandas库: fillna sklearn库: Imputer
  • pandas库:fillna
  • sklearn库:Imputer

⽤特征⼯程处理泰坦尼克号的预数据

字段说明:

字段1 说明1 字段2 说明2
Passenge rId 乘客ID Survived ⽣存情况,1为存活,0为死 亡
Pclass 客舱等级,1为⾼级,2 为中级,3为低级 Name 乘客名字
Sex 乘客性别 Age 乘客年龄
SibSp 在船兄弟姐妹数/配偶数 Parch 在船⽗⺟数/⼦⼥数
Ticket 船票编号 Fare 船票价格
Cabin 客舱号 Embarked 登船港⼝

首先导入模块

import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')  # 忽略警告,不写也不影响代码运行

导入数据,显示前5行:

df_train = pd.read_csv('train.csv')
print(df_train.head())  # 打印前5行

运行结果

 PassengerId  Survived  Pclass  ...     Fare Cabin  Embarked
0            1         0       3  ...   7.2500   NaN         S
1            2         1       1  ...  71.2833   C85         C
2            3         1       3  ...   7.9250   NaN         S
3            4         1       1  ...  53.1000  C123         S
4            5         0       3  ...   8.0500   NaN         S

[5 rows x 12 columns]
 

显示行列数 

print(df_train.shape) 

运行结果:891行,12列

(891, 12)

看一下它大致有哪些字段,字段的类型

print(df_train.info())

运行结果 

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值