特征工程(PPT)

数据决定了机器学习模型的上限,特征工程是提升模型性能的关键步骤。本文详细探讨了类别特征的处理,包括onehot encoding、label encoding、count encoding等,以及数值特征的rounding、binning和scaling等方法。还介绍了时间、趋势和空间等其他特征的构造,以及特征选择的Filter、Wrapper和Embedded方法。最后提到了降维技术如PCA和LDA。
摘要由CSDN通过智能技术生成

数据决定上限,模型逼近上限

类别特征

类别特征的特点:当类别基数较大时在处理后会产生非常稀疏的特征,难以处理缺失值。

onehot encoding
  • onehot之前要去掉NAN值
输入数据格式:必须是二维的testdata[['pet']]  (二维),数据大小假设为(n,3)
输出数据格式:toarray()之后自然转为array格式,每一行输出数据代表一条数据的encode结果

例子
from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])    # fit来学习编码
enc.transform([[0, 1, 3]]).toarray()    # 进行编码

输出:array([[ 1.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  1.]])

数据矩阵是4*3,即4个数据,3个特征维度。

0 0 3               观察左边的数据矩阵,第一列为第一个特征维度,有两种取值0\1. 所以对应编码方式为1001

1 1 0               同理,第二列为第二个特征维度,有三种取值0\1\2,所以对应编码方式为100010001

0 2 1               同理,第三列为第三个特征维度,有四中取值0\1\2\3,所以对应编码方式为1000010000100001

1 0 2

再来看要进行编码的参数[0 , 1,  3]0作为第一个特征编码为10,  1作为第二个特征编码为0103作为第三个特征编码为0001.  故此编码结果为 1 0 0 1 0 0 0 0 1

注意:函数将输入数据的每一行看做一个样本进行onehot训练,所以transform时也是一行一个样本的进行编码,只是我们要保证fit和transform的数据列数要一致才可以正常编码

categorical_features:计数从0开始,[0]表示对第0列进行onehot编码,默认all
sparse:true返回矩阵格式   False返回numpy格式
handle_unkonwn:如果tranform时出现fit中不存在的值,无法进行编码时,error表示报错,ignore表示吧这种值设为全0
from sklearn.preprocessing import OneHotEncoder
onehot=OneHotEncoder(categorical_features = [1],sparse=False)
label encoding
  • 对非线性树算法有用
  • 不增加维度
输入数据格式:可以一维也可以二维,testdata['pet'](一维),数据大小为(n,)
输出数据格式:长度为n的list,每个元素表示每个输入数据的encode,非二值形式
注:在使用LabelEncoder之前要对数据进行缺失值处理,比如fillna("None),不然编码的时候会报错
a = LabelEncoder().fit_transform(testdata['pet'])
OneHotEncoder( sparse=False ).fit_transform(a.reshape(-1,1)) # 注意: 这里把 a 用 reshape 转换成 2-D array
查看label encoding与onehot encoding的区别
testdata = pd.DataFrame({
   'pet': ['cat', 'dog', 'dog', 'fish'],'age': [4 , 6, 3, 3],
'salary':[4, 5, 1, 1]})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值