机器学习-特征工程笔记

本文介绍特征工程的概念及实践,包括One_Hot编码、连续变量离散化、交互特征与多项式特征的构建方法,以及特征的非线性变换技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习-特征工程

对于某个特定任务来说,如何找到最佳数据表示,称之为特征工程(feature engineering)
  1. 分类变量
    One_Hot编码与dummy variable
    这里写图片描述
    python代码实现在我另一篇博客连接

  2. 连续变量离散化
    特征离散化( discretization)也叫分箱(bining),与上文不同的是,离散化是把原理连续取值的变量转化为几个值表示。
    比如在做决策树的时候,是需要变量为离散值的,有时需要用到变量的离散化,虽然在一定程度上会损失变量信息。
    在pandas中的实现

import numpy as np
bins=np.linspace(-3,3,7)
print bins
print (“bins:{}”.format(bins))
data_bins=np.digitize(data,bins=bins)
print data_bins

把特征划归为-3至3之间的7份,data_bins显示原取值划为哪一个箱子。

.3. 交互特征与多项式特征

对于简单的线性方程,当数据两个变量有协同效应,具体是其中一个特征在另一个特征每一水平上表现不一致的时候就说存在交互作用。
比如生字密度和主题数学在低水平起作用,也就是图上的出现在低水平时二者特征相交现象,比如这样x1,x2两个特征存在交互,那么交互项的定义为
x1*x2,把这个定义的乘积交互作为一个新的特征放入模型中,
这里写图片描述
而非线性的关系是,如下通过绘制模型的残差图(residual plot)
这里写图片描述
可以看出来模型的残差分布有一定规律,呈二次型。所以可以尝试在线性的基础上拟合二次曲线。

from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
poly=PolynormialFeatures(degree=3,include_bias=False)
poly.fit(x)
X_poly=poly.transform(x)
reg=LinearRegression().fit(X_poly,y)

degree(自由度),表示拟合的最高次项为三次。
include_bias是添加截距,注意回归模型中的bias(截距)和方差-偏差权衡中的偏置不是一回事。

4.特征的非线性变换
对于数据非正态的时候,往往需要对数据做变换,常见的对数转换,box_cox 转化,平方根变换,倒数变换等
对数转换如:

x_log=np.log(x+1)

5.自动特征选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值