你将会学到:
确定交互信息中哪些功能最重要
在多个现实问题领域中发现新特征
使用目标编码对高基数类别进行编码
使用k-means聚类创建分割特征
利用主成分分析将数据集的变化分解为特征
特征工程的目标:提高模型的预测表现,减少对算力和数据的需求,提高结果的解释性
要使功能有用,它必须与模型能够学习的目标有关系。例如,线性模型只能学习线性关系。因此,当使用线性模型时,您的目标是变换特征,使其与目标线性关系。
这里的关键思想是,应用于特征的转换实质上成为模型本身的一部分。假设你试图从一边的长度来预测正方形地块的价格。将线性模型直接拟合到长度会产生很差的结果:这种关系不是线性的。
如果我们将长度特征平方以获得“面积”,我们将创建一个线性关系。向要素集中添加面积意味着该线性模型现在可以拟合抛物线。换言之,对特征进行平方处理,使线性模型能够拟合平方特征。
这个例子很好的展示了在特征工程上投入时间是会获得高回报的,模型学习不到的关系都可以通过转换来获得。在开发功能集时,需要考虑模型可以使用哪些信息可以实现最佳性能。
混凝土配方:
为了说明这些想法,我们将看到向数据集添加一些合成特征如何提高随机森林模型的预测性能。
混凝土数据集包含各种混凝土配方和最终产品的抗压强度,这是一种衡量该类混凝土能够承受多少荷载的指标。该数据集的任务是预测给定配方的混凝土抗压强度。
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from