数据挖掘04-不同数据类型的特征处理

参考资料:
处理数值型特征
如何处理类别型特征?
特征工程:时间特征处理方式
特征处理之统计特征
AI基础:特征工程-文本特征处理

一、特征与目标的概念

特征:作为判断条件的一组输入变量,是做出判断的依据
目标:判断和预测的目标,模型的输出变量,是特征所产生的结果

  • 特征( feature):数据中抽取出来的对结果预测有用的信息。
  • 特征的个数就是数据的观测维度
  • 特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程
  • 特征工程一般包括特征清洗(采样、清洗异常样本),特征处理和特征选择
  • 特征按照不同的数据类型分类,有不同的特征处理方法
    • 数值型
    • 类别型
    • 时间型
    • 统计型
    • 文本型

二、数值型特征处理

2.1 归一化

  1. 特征与特征之间应该是平等的,区别应该体现在特征内部

  2. 例如房屋价格和住房面积的幅度是不同的,房屋价格可能在30000001500000(万)之间,而住房面积在40300(平方米)之间,那么明明是平等的两个特征,输入到相同的模型中后由于本身的幅值不同导致产生的效果不同,这是不合理的

  3. 在这里插入图片描述

  4. 在这里插入图片描述

2.2 离散化

将原始连续值切断,转换为离散值
在这里插入图片描述

  • 让座问题:假设我们要训练一个模型判断在公交车上应不应该给一个人让座,按照常理,应该是给年龄很大和年岭很小的人让座
  • 对于以上让座问题中的年龄特征,对于一些模型,假设模型为y=θx,输入的x (年龄)对于最后的贡献是正/负相关的,即x越大越应该让座,但很明显让座问题中,年龄和是否让座不是严格的正相关或者负相关,这样只能兼顾年龄大的人,无法兼顾年大的人和年龄小的人
  • 对于让座问题,我们可以使用阈值将年龄进行分段,将一个age特征分为多个特征, 将连续值离散化
  • 在这里插入图片描述
  • 在电商中,每个人对于价格的喜好程度不同,但它不一定是严格的正相关或负相关,某些人可能就喜欢某一价格段内的商品
2.3.1 离散化的两种方式
  1. 等步长
    1. 简单但并不一定有效
  2. 等频
    1. min -> 25% -> 75% -> max
2.3.2 两种方式对比
  • 等频的离散化方法很精准,但需要每次都对数据分布进行一遍从新计算,因为昨天用户 在淘宝上买东西的价格分布和今天不一定相同,因此昨天做等频的切分点可能并不适用, 而线上最需要避免的就是不固定,需要现场计算,所以昨天训练出的模型今天不一定能 使用
  • 等频不固定,但很精准,等步长是固定的,非常简单,因此两者在工业上都有应用

2.3 特征缩放

用sklearn的MinMaxScaler来缩放一个特征数组,将一个数值型特征的值缩放到两个特定的值之间。

import numpy as np
from sklearn import preprocessing

#创建特征
feature = np.array([[-500.5],
                   [-100.1],
                   [0],
                   [100.1],
                   [900.9]])

#创建缩放器
minmax_scale = preprocessing.MinMaxScaler(feature_range=(0,1))
#缩放特征的值
scaled_feature = minmax_scale.fit_transform(feature)
#查看特征
print(scaled_feature)
array([[0.        ],
       [0.28571429],
       [0.35714286],
       [0.42857143],
       [1.        ]])

2.4 特征标准化

对一个特征进行转换,使其平均值为0,标准差为1.

import numpy as np
from sklearn import preprocessing

#创建特征
x = np.array([[-1000.1],
                   [-200.2],
                   [500.5],
                   [600.6],
                   [9000.9]])

#创建缩放器
scaler = preprocessing.StandardScaler()
#转换特征
standardized 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值