美文网首页
连续属性离散化实例

连续属性离散化实例

作者: 橘猫吃不胖 | 来源:发表于2020-06-09 16:37 被阅读0次

连续属性离散化,就是将数值型变量转化为离散型变量
类似于指标转维度的那种感觉

前面说过,连续属性离散化有几种方式:

  • 等宽法
  • 等频法
  • 聚类分析法

下面我们通过小栗子来看看如何应用

数据集
这是书中提供的例子

df = pd.read_excel(data_path)
df.head()

一共9白多条记录

df.info()

在做离散化之前,我们需要思考下,我们需要分成多少块
实际应用的时候,应该考虑该数据涉及的业务场景,或者数据本身的一些特征

我感觉可以画个散点图来瞧一瞧

df.reset_index(inplace=True)

df.plot.scatter(x='index' , y='肝气郁结证型系数')

看上去不是非常明显,但还是有5堆的感觉
但是,书中提到的是,分割成4份,下面也是按照4份来看的

等宽法

等宽法比较好处理,就是按照相同的间距进行分割
和直方图很像,可以使用pandas.cut函数

参考:pandas函数-cut

k = 4
df1 = pd.cut(df['肝气郁结证型系数'].values , k , labels=range(k))

k就是我们要分割的份数,

df['等宽离散化'] = df1.codes

df.groupby('等宽离散化').count()

然后,我们看一下这个等宽

df2['max']-df2['min']

书中是画了个一个图来看,更加直观

sns.relplot(x='肝气郁结证型系数' , y='等宽离散化' , hue='等宽离散化'  , data=df , palette=['r','y','b','g'])

等频法

这个方法就是保证每个区间内的元素个数一样,就像四分位数一样,正好书中也是分成4份

书中写了一个等频法的方法,虽然这里正巧是四分位

data = df['肝气郁结证型系数'].copy()

w = [1.0*i/k for i in range(k+1)]
w = data.describe(percentiles=w)[4:4+k+1]
w[0] = w[0]*(1-1e-10)
w

上面是构造了一个区间,然后使用describe函数,直接获取分位数


然后,依然使用cut函数

df_dp = pd.cut(data , w , labels=range(k))
df['等频离散化'] = df_dp
df.groupby('等频离散化')['肝气郁结证型系数'].agg({'count','min','max'})

这个数量并不是完全分割,估计和中位数的算法有点儿关系,具体我没有研究

我们可以使用同样的方式来展示下最终的数据:

sns.relplot(x='肝气郁结证型系数' , y='等频离散化' , hue='等频离散化'  , data=df , palette=['r','y','b','g'])

聚类分析法

这个是调用sklearn的包,这里先不说了,后面会专门来整理算法相关的内容,请期待。

相关文章

  • 连续属性离散化实例

    连续属性离散化,就是将数值型变量转化为离散型变量类似于指标转维度的那种感觉 前面说过,连续属性离散化有几种方式: ...

  • 离散属性连续化

    本来要写神经网络中前向传播和反向传播的一些东西。准备使用西瓜数据集建立一个超级简单的两层MLP进行分析。但是着手动...

  • 5.4 数据连续属性离散化.cut()、qcut()、pd.v

    连续属性变换成分类属性,即连续属性离散化在数值的取值范围内设定若干个离散划分点,将取值范围划分为一些离散化的区间,...

  • 标准化和离散化总结

    离散化总结 等距离散化是根据连续型变量的取值,等频离散化根据连续型变量的总个数。

  • 连续数据离散化

    在工作中经常会有对连续数据进行分级的工作。我们可以构造一个这样的实例: 人工分级 Artificial Divis...

  • 面向对象基础

    类的相关知识 初识类 类有两种作用:属性引用和实例化 属性引用(类名.属性) 实例化:类名加括号就是实例化,会...

  • React-Native 生命周期

    实例化 ============= 组件类型首次**实例化时初始化默认props属性,多实例共享 实例化时初始化默...

  • Python面向对象(一):对象的特征(实例属性,类属性,私有属

    一、实例属性 1、实例属性是类实例化之后才会拥有的属性;2、实例属性一般在__init__方法中创建,__init...

  • 数据预处理_数据离散化

    一、数据离散化 1、所谓离散化,就是把无限空间中的有限个体映射到一个有限的空间中。 2、数据离散化大多针对连续数据...

  • TypeScript:属性装饰器

    回顾类的属性 回顾面向对象,类中的属性分为实例属性和静态属性,实例属性属于实例化后的对象,静态属性属于类本身 在类...

网友评论

      本文标题:连续属性离散化实例

      本文链接:https://www.haomeiwen.com/subject/ynvstktx.html