高级处理-数据离散化| 学习笔记

简介: 快速学习高级处理-数据离散化

开发者学堂课程【Python 数据分析库 Pandas 快速入门高级处理-数据离散化学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/607/detail/8862


高级处理-数据离散化


目录

一、什么是数据的离散化

二、为什么要离散化

三、如何实现数据的离散化

四、小结


一、什么是数据的离散化

(一)举例

这里有一组统计一个班级的各种身体指标的情况,里面包含对性别、年龄的统计,假设有A、B、C三个人,要求用数值来表示这些信息。

这时候需要表示类别,男或者女,首先想到用字符串来进行表示,直接在相对应

人名位置填男或者女,如果要进行运算,在字符串里面是无法进行运算的,只能是用数值进行运算,所以假设有3个字段,用数值去表示男、女怎么表示?

一种方法是假设 A、B、C 三个人,写上相对应的性别、年龄,然后用数值1表示A的性别男,数值23表示 A 的年龄,数值2表示B的性别女,数值30表示B的性别30,同样用数值1表示C的性别男,18表示 C 的年龄。进行计算,计算机无法识别上面的数值是用来表示性别的,当计算机看到 A 是1,B 是2,它只会识别为B在某种程度上比A更有优势,或者值比较大,出现这种情况就比较奇怪,这样一来,用编号的形式表示男女是不合适的。

如果只是性别还好只有两个类别,如果是物种。比如还是用 A、B、C、比如这里有动物、毛发等,比如 A 是狗用1表示;B 是猪用2表示;C 是老鼠用3表示,依次排列,计算机并不知道1是狗,2是猪,3是老鼠,它只会认为老鼠是3比猪是2大,这样表示就不太合适。

那我们该怎样用数值去表示这些类别和信息比较合适?用这样的一种表示方法,比如:性别总共有两种情况,A 如果是男的话,在男的位置标记1,然后年龄23,B 是女,在女对应的位置标记0,年龄30,C 是男的,在男的位置标记1,女的位置标记0。这样表示就避免了上面描述的会遇到的问题,避免了由于数值上的差异而导致的平衡。同样的表示物种,狗、猪、老鼠三个物种,三种情况。比如A是狗就在狗的位置标记1、猪的位置是0,老鼠的位置是0,毛发多的用2表示,以此类推,相应表示即可。

(二)数据离散化的概念

讲义概念:连续属性的离散化就是将连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数值在每个子区间中的属性值。

举例:这里有一组身高数据,我想对不同的人的身高做一个统计,但是不想用数值来表示每个人具体的值,而是把它分成不同的类别,分成矮个子、中等身高、高个子三个类别,这样我们得到相应的分组,如下图所示:


 image.png


根据分组要求,我们这8个人分成了三个类别:矮、中、高。

我们如果想用数值来进行表示,就可以用刚刚学到的方法。比如165在第一个区间段,所以在矮、中、高三个区间段中在矮,标记为1;中、高分别标记为0。依此类推,比如174在中间这个区间段,在中间标记为1,其他的矮和高标记为0。剩余的都是这样表示的。而这种对数据的表示方法就叫做数据的离散化。


二、为什么要离散化

我们刚刚一开始引入的时候,例举了那么多例子,其实就是为了让大家理解为什么要这样操作。

以上提到的数据就是当我们想要表示类别的时候,我们就用这种可能性去标记1、0的这种方式来表示数据,使得类别与类别之间是比较平衡和公平的,我们把这种表示方法就称为数据的离散化。而这种表示形式我们给它取一个名字叫做 one-hot 编码&哑变量。


三、如何实现数据的离散化

我们刚刚得到的数据都是通过手动完成的,那么我们如何在这个软件中完成呢?两步就可以完成。

第一步:分组

a:自动分组 pd.qcut(data,bins)

b:自定义分组 pd.cut(data,[])

第二步:将分组好的结果转换成 one-hot 编码&哑变量;

pd.qet_dummies(sr,prefix=)

那学习了以上的方法后,我们就可以利用以上方法创建数据进行操作了。

上面是自动分组的方法,用自动分组并不能达到我们想要的例如书上的那种形式,所以我们要采用自定义分组的方法,以下是自定义分组的操作步骤:

利用以上方法,我们就可以利用代码来完成数据的离散化了。

接下来,我们再来看一个案例

案例:股票的涨跌幅离散化

操作步骤:

第一步:读取股票的数据;

第二步:将股票的涨跌幅数据进行分组;

第三步:股票涨跌幅分组数据变成 one-hot 编码;

具体操作如下图所示:自动分组

自动分组根据上面例举的方法操作即可。


四、小结

(一)什么是数据离散化?

将一组连续的数据分成你需要的,然后用数值进行表示,就可以利用one-hot编码的形式进行表示。

(二)为什么要离散化

当我们想要进行数据的运算,运用常规的方法无法达到,只有数字才能进行运算,所以我们要将其转换为数值。如果只是简单的用1、2、3、4等表示就会产生歧义,所以就用one-hot编码的形式进行表示。

(三)如何实现数据的离散化

第一步:分组;

第二步:将分组好的数据编成码即可;

相关文章
|
5月前
|
数据采集 算法 数据挖掘
【数据挖掘】数据变换与离散化讲解与实战(超详细 附源码)
【数据挖掘】数据变换与离散化讲解与实战(超详细 附源码)
197 0
|
3月前
|
机器学习/深度学习 算法 Java
矩阵运算基础与高级应用
矩阵运算基础与高级应用
|
5月前
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
5月前
|
数据可视化 数据挖掘
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码1
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
5月前
|
数据可视化 算法 区块链
R语言泊松过程及在随机模拟应用可视化
R语言泊松过程及在随机模拟应用可视化
|
5月前
|
并行计算 前端开发 数据可视化
R语言面板平滑转换回归(PSTR)分析案例实现
R语言面板平滑转换回归(PSTR)分析案例实现
|
5月前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
5月前
【SPSS】交叉设计方差分析和协方差分析详细操作教程(附案例实战)
【SPSS】交叉设计方差分析和协方差分析详细操作教程(附案例实战)
336 0
|
机器学习/深度学习 人工智能 算法
强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战
强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战
强化学习从基础到进阶-案例与实践[3]:表格型方法:Sarsa、Qlearning;蒙特卡洛策略、时序差分等以及Qlearning项目实战
|
机器学习/深度学习 传感器 算法
基于顺序模式的度量的多元时间序列非线性分析的Matlab工具箱代码
基于顺序模式的度量的多元时间序列非线性分析的Matlab工具箱代码
下一篇
无影云桌面