精华内容
下载资源
问答
  • 常用特征离散化方法

    千次阅读 2018-04-18 10:46:56
    1规定划分区间的参数,取定长的间隔将特征放入不同的箱子中,这种方法对异常点比较敏感。,2 根据频率划分箱子,会出现特征相同却不在一个箱子中的情况,需要在划分完成后进行微调。先对特征值进行sort,然后评估...

    1规定划分区间的参数,取定长的间隔将特征放入不同的箱子中,这种方法对异常点比较敏感。,

    2 根据频率划分箱子,会出现特征相同却不在一个箱子中的情况,需要在划分完成后进行微调。

    先对特征值进行sort,然后评估分割点,划分或者合并

    3 1R方法:将前面的m个实例放入箱子中如果后面实例放入箱子时,比对当前实例的标签是否与箱子中大部分实例标签相同,如果相同就放入,如果不相同就形成下一个m大小的新箱子,将实例全部放入箱子后,将箱子中大多数实例标签作为箱子的标签,再将标签相同的箱子合并

    4 基于卡方的离散方法:将数值特征的每个不同值看做一个区间对每个相邻的区间计算卡方统计量,如果大就合并,如果不大于阈值就停止。
    5 或者基于熵的离散方法:使用合成或者分裂的方法根据熵计算和阈值判定来JUDGE是合成还是分裂。

    展开全文
  • 常用的控制系统离散化方法

    万次阅读 2018-07-13 09:48:28
    常用的控制系统离散化方法共有6种,分别是:(1)前向差分法(2)后向差分法(3)双线性变换法(4)脉冲响应不变法(5)阶跃响应不变法(6)零极点匹配法前三种方法比较简单易用,已知对应的S域传递函数,可以通过...

    常用的控制系统离散化方法共有6种,分别是:
    (1)前向差分法
    (2)后向差分法
    (3)双线性变换法
    (4)脉冲响应不变法
    (5)阶跃响应不变法
    (6)零极点匹配法


    前三种方法比较简单易用,已知对应的S域传递函数,可以通过简单的代数变换求得对应的Z变换
    假设对应的传递函数为D(s) = 1/(RCs+1)
    前向差分法:s = (z-1)/Ts
    后向差分法:s = (z-1)/zTs
    双线性变换法:s = 2(z-1)/[Ts(z+1)]

    把D(s)中的s分别用上述的3个公式替换以后,就能产生对应的离散化函数D(z),用于后续的控制与仿真操作。Ts为系统采样时间

    个人关于上述的公式简单的理解:s对应连续域的求导操作。前向差分其实就是Y(t) = [X(t+1) - X(t)]/Ts,后向差分是Y(t) = [X(t) - X(t-1)]/Ts



    前向差分法离散化以后不保证系统的稳定性。因此后向差分法和双线性变换法较常用,后向差分法公式较简单,本人更喜欢使用一些
    展开全文
  • 连续属性离散化方法

    千次阅读 2019-07-18 21:52:59
    常用离散化方法有以下三种:等宽法、等频法、基于聚类分析的方法。 下面来依次简单介绍一下三种方法的原理: 等宽法主要就是将属性的值域分成具有相同宽度的区间,区间的个数由数据本身的特点决定,可能会导致一些...

    离散化方法

    由于一些数据挖掘的算法,主要是一些分类算法,要求数据是分类的形式即是离散的。所以就需要将连续的属性变换为分类的属性,即连续的变为离散的。
    常用的离散化方法有以下三种:等宽法、等频法、基于聚类分析的方法。
    下面来依次简单介绍一下三种方法的原理:
    等宽法主要就是将属性的值域分成具有相同宽度的区间,区间的个数由数据本身的特点决定,可能会导致一些区间数据少,一些区间数据多的情况。
    等频法主要是将数量相同的记录放进每个区间,可能会将相同的数据分到不同的区间以满足每个区间中固定的数据个数。
    基于聚类分析的方法:主要是用聚类算法进行聚类,然后将得到的cluster进行处理,合并到一个cluster的连续属性值做同一标记。
    下面还是通过代码来进行展示:

    #连续元素离散化
    import pandas as pd
    import matplotlib.pyplot as plt
    datafile = 'G:\data\Python\chapter4\demo\data\discretization_data.xls'
    data = pd.read_excel(datafile) 
    data = data['肝气郁结证型系数'].copy()
    k = 4
    d1 = pd.cut(data,k,labels = range(k)) #等宽离散化,各个类比依次命名为0,1,2,3
    #等频率离散化
    w = [1.0*i/k for i in range(k+1)] #生成一个以0.25为间距的列表
    w = data.describe(percentiles = w)[4:4+k+1] #用describe函数自动计算分位数
    w[0] = w[0]*(1-1e-10)
    d2 = pd.cut(data,w,labels = range(k)) #等频率
    #基于聚类分析方法
    from sklearn.cluster import KMeans
    kmodel = KMeans(n_clusters = k,n_jobs = 4)
    kmodel.fit(data.values.reshape((len(data),1))) #训练模型
    c = pd.DataFrame(kmodel.cluster_centers_).sort_values(0)
    w = c.rolling(2).mean().iloc[1:] #相邻两项求中点,作为边界点
    w = [0] + list(w[0]) + [data.max()] #把首末边界点加上
    d3 = pd.cut(data,w,labels = range(k))
    #作图函数
    def cluster_plot(d,k):
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
        
        plt.figure(figsize = (8,3))
        for j in range(0,k):
            plt.plot(data[d==j],[j for i in d[d==j]],'o') #画出d1,d2...属于四类中那类
        plt.ylim(-0.5,k-0.5)
        return plt
    cluster_plot(d1,4)
    cluster_plot(d2,4)
    cluster_plot(d3,4)
    

    运行结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    上面三个图就是用三种不同的离散化方法处理同一数据集后的图像。

    展开全文
  • 连续系统离散化方法

    2013-03-15 20:56:31
    常用连续系统采样离散化方法总结,如双线性变换
  • 连续特征离散化常用方法

    千次阅读 2018-04-25 23:05:27
    无监督方法 1、等宽分箱法 比如我们的特征数据在0-100,之间,等宽分成10份,分别为[0-10],[11-20],...,[90-100] 假设有个数据值为11,那么其对应的one-hot向量为[0,1,0,0,0,0,0,0,0,0] 等宽分箱法的缺陷:...

    无监督方法

    1、等宽分箱法

    比如我们的特征数据在0-100,之间,等宽分成10份,分别为[0-10],[11-20],...,[90-100]

    假设有个数据值为11,那么其对应的one-hot向量为[0,1,0,0,0,0,0,0,0,0]

    等宽分箱法的缺陷:假设有个别特征值过大,那么和上面分同样多份宽度会拉长,实例就主要集中在前面的箱体中。

    那么我们设立阈值之外的一等份。此时我们可以分成[0-10],[11-19],...,[90-99],[100, +∞)增加一个[100, +∞)分段。

    2、等频分箱法

    区间的边界值要经过选择,使得每个区间包含大致相等的实例数量。比如说 N=10 ,每个区间应该包含大约10%的实例。

    监督方法

    卡方分箱

    卡方分箱包括两个阶段:初始化阶段和自底向上的合并阶段。

    下面的示例按照下图实例说明

    1、初始化阶段
    1)、设置一个卡方阈值。通过自由度和置信度计算出来。比如下面实例中,对相邻的属性计算卡方值:

    自由度:(2行-1)*(3列-1)=2

    置信度:90%(10%显著性水平)

    计算得卡方值为4.6

    2)、首先按照属性值(特征值)的大小进行排序,然后每个属性值单独作为一组。

    2、合并阶段

    1)、对每一对相邻的组,计算卡方值。

    2)、根据计算的卡方值,对其中最小的一对邻组合并为一组。(低卡方值表明它们具有相似的类分布)。

    3)、不断重复(1),(2)直到计算出的卡方值都不低于事先设定的阈值,或者分组数达到一定的条件(如最小分组数5,最大分组数8)。

    卡方相关概念计算可参考:
    卡方检验

    3、生成one-hot(个人想法)

    根据分箱后的结果生成one-hot的向量,样本特征值对比分箱结果划分到one-hot向量里的对应位置。

    注:

    1、ChiMerge算法推荐使用0.90、0.95、0.99置信度,最大区间数取10到15之间.

    2、也可以不考虑卡方阈值,此时可以考虑最小区间数或者最大区间数。指定区间数量的上限和下限,最多几个区间,最少几个区间。

    3、对于类别型变量,需要分箱时需要按照某种方式进行排序。


    图是著名的鸢尾花数据集sepal-length属性值的分组及相邻组的卡方值。最左侧是属性值,中间3列是class的频数,最右是卡方值。这个分箱是以卡方阈值1.4的结果。

    下面分箱是以卡方阈值4.6的结果

    1R方法

    最小熵法分箱

    最小熵法分箱都是类ID3决策树的方法:首先对某个特征所有值进行排序,通过遍历该特征所有的值(离散值,连续值需要处理成离散值)。计算信息增益,选择信息增益大的值作为一个分断点,然后这个断点将数据分成两部分,然后分别对分割的两部分依次进行上面的操作,直到达到停止条件。

    一般来说,停止准则是当得到的每个区间中的类标签都是一样。这样将导致到的分割点太多,过拟合。我们可以设置一些停止阈值,比如当信息增益小于阈值就停止等。

    通过ID3算法衍生出D2和MDLP(minimum description length principle,最小描述长度准则)基于熵的离散化方法。

    D2

    D2的迭代类似ID3,它的停止条件为:

    • 1、如果切分后的样本数少于14
    • 2、分割的区间大于8
    • 3、切分的样本都属于同一类

    MDLP

    MDLP的过程和ID3类似,但是它有特殊的停止方法。一般的,他设置两中停止方法:

    • 1、设置迭代的深度
    • 2、
      g a i n ≥ ( 1 / N ) ∗ l o g 2 ( N − 1 ) + ( 1 / N ) ∗ [ l o g 2 ( 3 k − 2 ) − ( k ∗ E n t r o p y ( S ) – k 1 x E n t r o p y ( S 1 ) – k 2 x E n t r o p y ( S 2 ) ] gain \geq (1/N) * log_2(N-1)+(1/N) * [ log_2 (3^k-2) - (k*Entropy(S) – k_1 x Entropy(S1) – k_2 x Entropy(S2) ] gain(1/N)log2(N1)+(1/N)[log2(3k2)(kEntropy(S)k1xEntropy(S1)k2xEntropy(S2)]

    这个公式的解释可参考Discretizing a continuous variable using Entropy,实现可参考代码
    *

    MDLP是有论文依据的,有兴趣点击Multi-Interval Discretization of Continuous-Valued Attributes for Classification Learning 阅读

    它的实现及使用可以参考:hlin117/mdlp-discretization

    有些文章说,MDLP是最好的监督离散化方法。

    如果需要转化成one-hot格式,我们可以使用获得到的分割点对应的区间映射成one-hot向量。

    其他

    数据挖掘过程中的离散方法

    非监督

    • 等频率、等宽、等深、K均值

    分箱binning

    • Equal width or frequency
    • 1R

    熵entropy

    • ID3 type
    • D2
    • Ent-MDLP
    • Mantaras distance

    独立性dependency

    • Zeta

    精确度accuracy

    • adaptive quantizer

    参考

    特征工程之分箱

    连续特征离散化的方法

    Python评分卡建模—卡方分箱

    金融风控–>申请评分卡模型–>特征工程(特征分箱,WOE编码)

    连续特征离散化方法综述

    MDLP 特征离散化
    Discretization: An Enabling Technique

    展开全文
  • 离散化处理 写在前面:离散化是对一堆元素进行操作,通过改变他们的大小,但不改变他们的大小关系,这种做法往往可以节省空间,减低时空复杂度。本文参考博客:HolseLee 举个例子理解离散化究竟是什么操作: 比如...
  • 连续特征离散化方法介绍

    千次阅读 2018-01-30 10:48:40
    连续属性的离散化方法也可以被称为分箱法,即将一组连续的值根据一定的规则分别放到其术语的集合中。  离散化技术可以根据如何对数据进行离散化加以分类,可以根据是否使用类信息或根据进行方向(即自顶向下或自底...
  • 连续特征离散化方法

    千次阅读 2017-09-29 09:18:00
    连续特征离散化方法
  • 在分析当前研究中常用的属性离散化方法的基础上,提出了一种计算初始断点集合的算法;定义了断点的信息熵,并以此作为对断点重要性的度量,提出了一种基于粗糙集理论和信息熵的属性离散化算法。通过与其他离散化算法...
  • 离散化是数据结构中的一个常用技巧,其可以有效的降低时空复杂度,其基本思想就是在众多可能的情况中,只去考虑需要用到的值,通过离散化,可以改进低效的算法,甚至实现根本不可能实现的算法。 对于一些数量较少,...
  • 转至http://blog.csdn.net/programmer_wei/article/details/17200085 什么是离散化: 连续属性的离散化就是将连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每...离散化方法...
  • 离散化

    千次阅读 多人点赞 2020-02-26 16:08:49
    离散化(Discretization),把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1, 999, 100000, 15;...
  • 【特征工程】数据离散化方法

    千次阅读 2019-04-20 17:28:28
    参考链接: ... ... 为什么要进行离散化离散化特征的增加和减少都很容易,有利于模型的快速迭代; 可以有效地避免一些异常数据的干扰,降低数据波动的影响,提高抗噪...
  • 特征怎么离散化?为什么需要离散化? 特征怎么离散化?为什么需要离散化? 特征离散化 无监督方法 有监督方法 特征离散化的优势 特征离散化 连续特征离散化的基本假设,是默认连续特征不同区间的取值对...
  • 常用离散化方法 一、非监督方法 1.分箱离散化 是指基于指定的箱子的个数自定向下的分裂计数,通过使用等宽或等频分箱,然后用箱子中的均值或者中位数来代表每个箱子,实现离散化 2.通过聚类离散化 通过将属性A的...
  • 第四章 连续系统的离散化方法;4.1 常微分方程的数值解法 ;一. 数值求解的基本概念;取前两项近似; 欧拉法的特点导出简单几何意义明显便于理解能说明构造数值解法一般计算公式的基本思想通常用它来说明有关的基本概念 ...
  • WOE:信用评分卡模型中的...今天介绍一种在信用卡评分系统中常用的连续变量离散化方法。目的是给大家在临床数据分析中提供一种借鉴思路。  最初接触信用卡评分系统是在2013年SAS中国数据分析大赛总决赛上,题目是用...
  • 在处理数据时,我们往往需要将连续性变量进行离散化,最常用的方式便是等宽离散化,等频离散化,在此处我们讨论离散化的概念,只给出在python中的实现以供参考 1. 等宽离散化 使用pandas中的cut()函数进行划分 ...
  • 在机器学习中,很多人在处理连续数据的时候,很多情况下要将连续数据离散化,那么什么时候离散化离散化的好处是什么? 目录 连续数据概念 离散化概念 离散化原因 离散化的优势 连续数据概念 连续数据,统计学概念...
  • 一把你常用分箱方法是等频分箱或者等宽分箱 一般使用pd.cut或者pd.qcut函数 pandas.cut(x, bins, right=True, labels) x: 数据 bins: 离散化的数目,或者切分的区间 labels: 离散化后各个类别的标签 right: 是否包含...
  • [常用技巧] 数据离散化入门介绍

    千次阅读 2015-07-20 10:14:27
    离散化是程序设计中一个非常常用的技巧,它可以有效地降低时间复杂度。其基本思想就是在众多可能的情况中“只考虑我需要用到的值”。下面用几个例子说明,如何运用离散化改进一个低效的,甚至根本不可能实现的算法。...
  • 离散化详解(两种方法

    千次阅读 2020-04-09 20:30:08
    离散化 在一些问题中,我们只关心 n 个数字之间的相对大小关系,而不关心它 们具体是多少。 因此,我们可以用一种叫离散化的技术来将数字映射到 1 ∼ n 的整数, 从而降低问题规模,简化运算。 通常的实现方法是将...
  • 数据离散化杂谈

    千次阅读 2014-10-23 20:51:37
    离散化是程序设计中一个非常常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中“只考虑我需要用的值”。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。要掌握这个思想,...
  • 数据处理之连续数据离散化

    万次阅读 2018-08-02 22:10:53
    一些数据挖掘算法,比如Apriori算法等,要求数据是分类属性形式,需要进行连续数据离散化。 连续数据离散化就是在数据的取值范围内,设定若干个离散的划分点,将取值范围划分为一些...常用离散化方法: 1、等宽...
  • 转自:连续特征离散化达到更好的效果,特征选择的工程方法连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散...
  • 连续属性离散化

    千次阅读 2016-08-07 17:17:07
    离散化技术分类连续属性的离散化方法也可以被称为分箱法,即将一组连续的值根据一定的规则分别放到其术语的集合中。 本文介绍了几种监督离散化和非监督离散化的方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,303
精华内容 22,521
关键字:

常用的离散化方法