1 基本数值特征

本文以bilibili上的学习视频为笔记,代码原图

1.1 离散值处理

np.unique()看一下有多少类别

1.2 标签编码

LabelEncoder

将离散值映射为计算机可以识别的数据。例子是采用的LabelEncoder来实现,数值是从0开始。也可以自己手动写

one-hot Encoding

什么是one-hot编码,简单的说就是,假如有5个类别,“鸡,鸭,鹅,猫,狗”,转换为one-hot编码就是:
鸡-----“1,0,0,0,0”
鸭-----“0,1,0,0,0”
鹅-----“0,0,1,0,0”
猫-----“0,0,0,1,0”
狗-----“0,0,0,0,1”
from sklearn.preorocessing import OneHotEncoder

Get Dummy 构造哑变量

pandas.get_dummies()函数
get_dummies 前:

get_dummies 后:

此部分来源于:https://blog.csdn.net/maymay_/article/details/80198468
可以自动做成one-hot encoder格式

在进行编码前,可以用pd.describe()函数查看数据是否存在问题,然后再进行编码,

二值特征

此部分标签要么为1,要么为0.如下午所示,通过listen_count计数,转化为二值特征就是watched,听过的大于等于1的标签就为1,没听过的就为0.

可用sklearn快捷转变二值特征
from sklearn.preprocessing import Binarizer
bn = Binarizer(threshold = 0.9)//表示大于0.9置为1

多项式特征

from sklearn.preprocessing import PolynomialFeatures
sklearn 的 PolynomialFeatures 的用法,这个类可以进行特征的构造,构造的方式就是特征与特征相乘(自己与自己,自己与其他人),这种方式叫做使用多项式的方式。
例如:有 a、b 两个特征,那么它的 2 次多项式的次数为 [ a , b , a 2 , a b , b 2 ] [a,b,a^2,ab,b^2] [a,b,a2,ab,b2]。
PolyNomialFeatures有3个参数
degree:控制多项式的次数;
interaction_only:默认为 False,如果指定为 True,那么就不会有特征自己和自己结合的项,组合的特征中没有 a2 和 b2;
include_bias:默认为 True 。如果为 True 的话,那么结果中就会有 0 次幂项,即全为 1 这一列。

binning特征

也叫分箱,用于把连续特征划分为离散特征值。
sklearn.preprocessing.KBinsDiscretizer(n_bins=5, encode=’onehot’, strategy=’quantile’)
参数注释:

n_bins:分箱的数量,默认值是5,也可以是列表,指定各个特征的分箱数量,例如,[feature1_bins,feature2_bins,…]

encode:编码方式,{‘onehot’, ‘onehot-dense’, ‘ordinal’}, (default=’onehot’)
onehot:以onehot方式编码,返回稀疏矩阵
onehot-dense:以onehot方式编码,返回密集矩阵
ordinal:以ordinal方式编码,返回分箱的序号
strategy:定义分箱宽度的策略,{‘uniform’, ‘quantile’, ‘kmeans’}, (default=’quantile’)
uniform:每个分箱等宽
quantile:每个分箱中拥有相同数量的数据点
kmeans:每个箱中的值具有与1D k均值簇最近的中心

举个例子,对于以下二维数组,有三个特征,可以创建分箱数组,为每个维度指定分箱的数量:

from sklearn import preprocessing
X = np.array([[ -3., 5., 15 ],
[ 0., 6., 14 ],
[ 6., 3., 11 ]])
est = preprocessing.KBinsDiscretizer(n_bins=[3, 2, 2], encode=‘ordinal’).fit(X)
est.transform(X)
#out
array([[ 0., 1., 1.],
[ 1., 1., 1.],
[ 2., 0., 0.]])

分位数切分



对数变换 BOX-COX变换

让数据呈现更趋于正态分布。
Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法,是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。Box-Cox变换之后,可以一定程度上减小不可观测的误差和预测变量的相关性。Box-Cox变换的主要特点是引入一个参数,通过数据本身估计该参数进而确定应采取的数据变换形式,Box-Cox变换可以明显地改善数据的正态性、对称性和方差相等性,对许多实际数据都是行之有效的 。

日期相关特征

将时间转换为pandas中的时间属性,可以直接用 .day .month调用



参考文档:
sklearn 学习 第二篇:特征预处理
百度百科box-cox变换
唐宇迪 机器学习-特征工程-常用特征提取方法

特征工程常用于特征提取方法——数值特征相关推荐

  1. 【特征工程概要】解释什么是特征,特征工程的步骤

    特征工程简介 经常听人说,数据和特征决定了机器学习的上限,算法和模型只是不断逼近这个上限而已.由此可见,特征工程在机器学习中不可或缺的地位. 回过头看看网站Kaggle,KDD,国内外的比赛,每个竞赛 ...

  2. 特征工程系列(一):特征工程的概念/特征的处理

    1 特征工程的概念 所谓数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.那么特征工程到底是什么呢?其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用. 2 特征 ...

  3. 手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式

    作者 | William Koehrsen 译者 | linstancy 编辑 | Jane 出品 | AI科技大本营 [导读]近年来,我们在自动模型选择和超参数调优方面取得了进展,但机器学习流程中最 ...

  4. 特征工程(feature engineering)是什么?特征工程(feature engineering)包含哪些方面?

    特征工程(feature engineering)是什么?特征工程(feature engineering)包含哪些方面? 设想一个场景,警方在询问目击证人的情形,那些问题需要被询问? ① 男性 OR ...

  5. python基于不同方法实现特征工程常用的归一化技术Normalization对比分析

    在很多机器学习数据挖掘的项目中,都免不了要去构建特征工程,在面临特征选择的时候经常会出现我们所提取到的不同的特征维度的数据本身的量纲或者是取值范围是不同的,比如我们在对人的属性建模的时候,人的体温取值 ...

  6. 特征工程之自动特征生成(自动特征衍生)工具Featuretools——深度特征合成

    深度特征合成 深度特征合成(DFS)是一种用于对关系数据和时间数据执行特征工程的自动方法. 输入数据 深度特征合成需要结构化数据集才能执行特征工程.为了演示DFS的功能,我们将使用客户交易数据集. I ...

  7. 特征工程之自动特征生成(自动特征衍生)工具Featuretools介绍

    源文件地址:https://docs.featuretools.com/ 参考内容:https://blog.csdn.net/q337100/article/details/80804887 Fea ...

  8. 【特征工程】机器学习中离散型特征的处理 —— 独热码 (one-hot)

    [原文链接]https://www.cnblogs.com/daguankele/p/6595470.html 1.什么是独热码 独热码,在英文文献中称做 one-hot code, 直观来说就是有多 ...

  9. 【特征工程】17种将离散特征转化为数字特征的方法

    作者 | Samuele Mazzanti 编译 | VK 来源 | Towards Data Science "你知道哪种梯度提升算法?" "Xgboost,Light ...

最新文章

  1. [OpenStack] OpenStack Essex - Glance 安装部署与命令行详解
  2. SQL How to get the current day month and year
  3. 数据库跟尾过多的错误,能够的原因阐发及处置惩罚设备
  4. STL中的priority_queue(优先队列)
  5. Mellanox 8亿美元收购EZchip
  6. 使用junit测试用例
  7. VHDL 整数 小数 分数 分频
  8. 2019年java安装步骤_win10的JAVA(jdk)2020年最新版安装教程心得
  9. LintCode MySQL 1918. 第二高的球员的身高
  10. SpringBootDubboZookeeper远程调用项目搭建
  11. 解决mapper映射文件不发布问题
  12. 蓝桥杯 ALGO-115 算法训练 和为T Java版
  13. LR:Code-29723 Error: Failed to deliver a p2p message from parent to child process, reason。。。
  14. leetcode刷题日记- 超级次方
  15. C语言,从入门到放弃
  16. 同事说关键字查询用Mysql,我上去就是一个高压锅,用ElasticSearch不香吗?
  17. C++ STL map插入效率优化
  18. N1 Armbian 安装 Domoticz
  19. 解决to_csv循环追加数据不会覆盖前面的数据
  20. libxml主要函数说明

热门文章

  1. ​最新淘宝商品详情接口API(稳定低成本)
  2. python下载是免费的吗-关于python下载imooc的免费视频的方法
  3. 高通挥刀 | 一点财经
  4. 计算机组装维护教学工作总结,计算机组装与维护教师工作总结_2
  5. 中间件 BES 连接池的配置和问题诊断方法
  6. s3fs挂载对象存储到本地
  7. 入手佳能24-70mm f/2.8L
  8. win10 悬浮日历_Win10日历隐藏功能:可直接打印空白月历
  9. snmp在win10上安装使用
  10. genymotion镜像下载慢使用迅雷下载