连续特征

利用python对包含离散型特征和连续型特征的数据进行预处理 对数据预处理是进行数据分析的基础环节,数据预处理质量的高低往往能够对实验结果产生很大的影响,现在UCI上的人口调查收入数据集为例,演示如何使用python对该数据集进行预处理。该数据集中每个样本同时包含离散型特征和连续型特征。在进行预处理之前,将原数据集中的训练集部分和测试集部分合并,剔除了包含空值的样本后剩余45222个样本,将标签“>50K”记为1,“<=50K”记为0,并剔除了与... 阅读详情

连续特征离散化可以使模型更加稳健,比如当我们预测用户是否点击某个商品时,一个点击该商品所属类别下次数为100次和一个点击次数为105次的用户可能具有相似的点击行为,有时候特征精度过高也可能是噪声,这也是为什么在LightGBM中,模型采用直方图算法来防止过拟合。

连续特征经常是用户或者事物对应一些行为的统计值,常见的处理方法包括:

  • 归一化

  • 标准化

  • 离散化

  • 缺失值处理

这里要特别注意一下归一化和标准化的区别,在平常的使用中,很多同学都容易把这两者的概念混淆,因为两者的英文翻译是一样的(Feature scaling,特征缩放,参考维基百科 Feature scaling - Wikipedia)。但是根据其本意和实际用途(或者称之为公式)来理解是不一样的。

归一化

归一化一般是将数据映射到指定的范围,用于去除不同维度数据的量纲以及量纲单位,最常见的归一化方法有:

1、Min-Max 归一化

Min-Max 归一化是指对原始数据进行线性变换,将值映射到[0,1]之间。Min-Max 归一化的计算公式为:

式中,为原始数据中的一个数据, 表示原始数据中的最小值, 表示原始数据中的最大 值, 为 Min-Max 归一化后的数据。

2、均值归一化

均值归一化是指通过原始数据中的均值、最大值和最小值来进行数据的标准化。均值归 一化法计算公式为:

式中,为原始数据中的一个数据,表示原始数据的均值,表示原始数据中的最大值,表示原始数据中的最小值,  为均值归一化后的数据。

3、小数定标归一化

小数定标归一化是指通过移动小数点的位置来进行数据的归一化。小数点移动的位数取决于原始数据中的最大绝对值。小数定标归一化的计算公式为:

式中, 为原始数据中的一个数据, 经过小数定标(Decimal scaling)归一化后的数据, 表示满足条件的最小整数。

例如,一组数据为[-309, -10, -43,87,344,970],其中绝对值最大的是 970。使用小数定标归一化,用 1000(即 j=3)除以每个值。这样,-309 被归一化为-0.309,970 被归一化为 0.97。

4、向量归一化

向量归一化是指通过用原始数据中的每个值除以所有数据之和来进行数据的归一化。向量归一化的计算公式为:

式中, 为原始数据中的一个值,分母表示的是原始数据的所有数据之和,  为归一化后的数据。

5、指数归一化

指数转换是指通过对原始数据的值进行相应的指数函数变换来进行数据的标准化。进行指数转换常见的函数方法有 函数、 函数和  函数。

a.  softmax函数

 softmax函数对应的标准化计算公式为:

式中, 为原始数据中的一个数据, 表示原始数据中的最大值,  为指数转换后的数据。

b.  sigmoid函数

 sigmoid函数对应的标准化计算公式为:

式中, 为原始数据中的一个数据, 为自然常数,分母表示的是原始数据中每个数据被  求指数后的和,分子表示的是原始数据中一个数据被  求指数,  为指数转换后的数据。

c.  函数

Sigmoid 函数对应的标准化计算公式为:

式中, 为原始数据中的一个常数, 为自然常数,  为指数转换后的数据。

标准化

标准化:对数据的分布的进行转换,使其符合某种分布(比如正态分布)的一种非线性特征变换。需要注意的是标准化不改变数据分布的类型,比如原始数据服从正态分布,标准化处理之后依旧服从正态分布,只是数据的均值和方差发生了变化。可以结合PCA算法进行理解,如果分布改变了,那主成分分析就得不到原始数据的分布信息了。

使用最广泛的标准化方法为:Z-Score标准化。Z-Score(也叫 Standard Score,标准分数)标准化是指基于原始数据的均值(mean)和 标准差(standard deviation)来进行数据的标准化。Z-Score 标准化的计算公式为:

式中, 为原始数据中的一个数据, 表示原始数据的均值, 表示原始数据的标准差, 为 Z-Score 标准化后的数据。

特征经过归一化或者标准化处理之后对于模型训练的好处有:

  • 提升模型精度。

    因为使不同量纲的特征处于同一数值量级,减少方差大的特征的影响。在KNN中,我们需要计算待分类点与所有实例点的距离。假设每个实例点(instance)由n个features构成。如果我们选用的距离度量为欧式距离,如果数据预先没有经过归一化,那么那些绝对值大的features在欧式距离计算的时候起了决定性作用。

    从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

  • 提升收敛速度。

    对于线性model来说,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

    图片

    提升模型收敛速度

在对特征进行具体的处理时,需要结合具体的业务场景和算法模型评估特征是否需要进行归一化或者标准化。

归一化改变数据分布,标准化不会改变数据分布,如下例:

根据人的身高和体重预测人的健康指数,假设有如下原始样本数据是四维的(当然一般不会有这么无聊的数据)

图片

在这里插入图片描述

图片

在这里插入图片描述

从上面两个坐标图可以看出,样本在数据值上的分布差距是不一样的,但是其几何距离是一致的。而标准化就是一种对样本数据在不同维度上进行一个伸缩变化(而不改变数据的几何距离),也就是不改变原始数据的信息(分布)。这样的好处就是在进行特征提取时,忽略掉不同特征之间的一个度量,而保留样本在各个维度上的信息(分布)。

图片

在这里插入图片描述

从采用大单位的身高和体重这两个特征来看,如果采用标准化,不改变样本在这两个维度上的分布,则左图还是会保持二维分布的一个扁平性;而采用归一化则会在不同维度上对数据进行不同的伸缩变化(归一区间,会改变数据的原始距离,分布,信息),使得其呈类圆形。虽然这样样本会失去原始的信息,但这防止了归一化前直接对原始数据进行梯度下降类似的优化算法时最终解被数值大的特征所主导。归一化之后,各个特征对目标函数的影响权重是一致的。这样的好处是在提高迭代求解的精度。

当然,数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对于决策树模型则并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征  上的信息增益。

离散化

数据离散化(也叫数据分组)是指将连续的数据进行分组,使其变为一段段离散化的区间,离散化后的特征根据其所在的组进行One-Hot编码。

根据离散化过程中是否考虑类别属性,可以将离散化算法分为有监督算法和无监督算法两 类。由于有监督算法(如基于熵进行数据的离散化)充分利用了类别属性的信息,所以在分类中能获得较高的正确率。

常见的数据离散化方法有以下几种(以下介绍的数据分组方法均需要对数据进行排序,且假设待离散化的数据按照升序排列):

  • 二值化分组

  • 等宽分组

  • 等频分组

  • 单变量分组

  • 基于信息熵分组

1、二值化分组

二值化分组比较好理解,即将离散特征根据某个值划分成两个字段。

例如,一组变量(1,7,12,12,22,30,34,38,46),可以将分割值设置为22,即小于等于22的为一组,大于22的为一组,划分后为:(1,7,12,12,22),(30,34,38,46)。

2、等宽分组

等宽分组的原理是,根据分组的个数得出固定的宽度,分到每个组中的变量的宽度是相等的。

例如,将一组变量(1,7,12,12,22,30,34,38,46)分成三组。

  • 宽度为 15,即用变量中的最大值(46)减去变量中的最小值(1),然后用差除以组数(3)。

  • 每组的范围为:(1,16]、(16,31]、(31,46]

  • 分组后的结果为:(1,7,12,12)、(22,30)、(34,38,46)

(1,16]表示半开半闭区间,即大于 1 且小于或等于 16。另外,采用半开半闭区间时,最 小值不能进行有效分组,这里默认将其归为第一组。

3、等频分组

等频分组也叫分位数分组,即分组后每组的变量个数相同。

例如,将一组变量(1,7,12,12,22,30,34,38,46)分成三组。

变量的总个数为 9,所以每组的变量为 3 个。分组后的结果为:(1,7,12)、(12,22,30)、 (34,38,46)。

等宽分组和等频分组实现起来比较简单,但都需要人为地指定分组个数。

等宽分组的缺点是:对离群值比较敏感,将属性值不均匀地分布到各个区间。有些区间 包含的变量较多,有些区间包含的变量较少。

等频分组虽然能避免等宽分组的缺点,但是会将相同的变量值分到不同的组(以满足每 个组内的变量个数相同)。

4、单变量分组

单变量分组也叫秩分组。其原理是:将所有变量按照降序或升序排序,排序名次即为排序结果,即将值相同的变量划分到同一组。

例如,将一组变量(1,7,12,12,22,30,34,38,46)分成三组,去重后,变量个数为 8,所以该组变量的分组数目为 8。

结果为:(1)、(7)、(12,12)、(22)、(30)、(34)、(38)、(46)。

5、基于信息熵分组

在学习信息熵分组之前,先了解一下信息量和熵的概念。

信息量

香农(Shannon)被称为“信息论之父”,他认为“信息是用来消除随机不确定性的东西”。即,衡量信息量大小就看这个信息消除不确定性的程度。

信息量是对事件发生概率的度量,一个事件发生的概率越低,则这个事件包含的信息量越大,这跟我们直观上的认知也是吻合的,越稀奇的新闻包含的信息量越大,因为这种新闻出现的概率低,即信息量的大小和事件发生的概率成反比。香农提出了一个定量衡量信息量的公式:

式中,表示  事件发生的概率。信息量度量的是“一个具体事件发生”所带来的信息。

熵

熵是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。熵越大表示结果的不确定性越大,熵为0表示没有任何不确定性。熵的计算公式为:

式中, 表示  事件发生的概率, 为  中所有类别的个数。

按照随机变量的所有可能取值划分数据的总熵  是所有事件的熵的加权平均:

式中, 是第  个事件出现的比例, 是第  个可能取值出现的次数, 是所有取值出现的总次数。

所以,基于信息熵进行数据分组的具体做法是:

  • 1、对属性  的所有取值从小到大排序

  • 2、遍历属性  的每个值 ,将属性  的值分为两个区间 、,使得将其作为分隔点划分数据集后的熵  最小,熵  的计算方式见式上边的两个公式

  • 3、当划分后的熵大于设置的阈值且小于指定的数据分组个数时,递归对 、 执行步骤2中的划分

6、基于用户是否点击和信息熵对商品价格进行离散化

接下来通过一个实例看一下如何基于信息熵对数据进行离散化。基于信息熵的数据离散化算法是有监督学习算法。在使用该方法对数据进行离散化时,需 要数据有对应的标签。假设现在有一份下面这样的数据,其表示的是用户是否点击商品和商品价格之间的关系(当然这是一份假设的数据)。

价格

标签

价格

标签

价格

标签

      

56

1

453

1

764

0

87

1

10

1

121

1

129

0

9

0

28

0

23

0

88

1

49

1

342

1

222

0

361

1

641

1

97

0

164

0

63

0

2398

1

1210

1

2764

1

592

1

  

2323

0

561

1

  

对该份数据进行离散化,其实现的代码如下:

# Author: Thinkgamer
# Desc  : 基于信息熵的数据离散化

import numpy as np
import math

class DataSplitByEntropy:
    def __init__(self, group, threshold):
        # 最大分组数
        self.max_group = group
        # 停止划分的最小熵
        self.min_threshold = threshold
        # 保存最终结果变量
        self.result = dict()
      
    # 加载数据
    def load_data(self):
        data = np.array(
            [
                [56, 1],   [87, 1],  [129, 0],  [23, 0],   [342, 1], 
                [641, 1],  [63, 0],  [2764, 1], [2323, 0], [453, 1], 
                [10, 1],   [9, 0],   [88, 1],   [222, 0],  [97, 0],
                [2398, 1], [592, 1], [561, 1],  [764, 0],  [121, 1],
                [28, 0],   [49, 1],  [361, 1],  [164, 0],  [1210, 1]
            ]
        )
        return data

    # 计算按照数据指定数据分组后的香农熵
    def cal_entropy(self, data):
        num_data = len(data)
        label_counts = {}
        for feature in data:
            # 获得标签
            one_label = feature[-1]
            # 如果标签不在新定义的字典里则创建该标签
            label_counts.setdefault(one_label, 0) 
            # 该类标签下含有数据的个数 
            label_counts[one_label] += 1
        entropy = 0.0
        for key in label_counts:
            # 同类标签出现的概率
            prob = float(label_counts[key]) / num_data
            # 以2为底求对数
            entropy -= prob * math.log(prob, 2)
        return entropy

    # 按照调和信息熵最小化原则分割数据集
    def split(self, data):
        # inf为正无穷大
        min_entropy = np.inf
        # 记录最终分割索引
        index = -1
        # 按照第一列对数据进行排序
        sort_data = data[np.argsort(data[:, 0])]
        # 初始化最终分割数据后的熵
        last_e1, last_e2 = -1, -1
        # 返回的数据结构,包含数据和对应的熵
        S1 = dict()
        S2 = dict()
        for i in range(len(sort_data)):
            # 分割数据集
            split_data_1, split_data_2 = sort_data[: i + 1], sort_data[i + 1 :] 
            entropy1, entropy2 = ( self.cal_entropy(split_data_1), self.cal_entropy(split_data_2) ) # 计算信息熵
            entropy = entropy1 * len(split_data_1) / len(sort_data) +  entropy2 * len( split_data_2) / len(sort_data)
            # 如果调和平均熵小于最小值
            if entropy < min_entropy:
                min_entropy = entropy 
                index = i
                last_e1 = entropy1 
                last_e2 = entropy2
        S1["entropy"] = last_e1
        S1["data"] = sort_data[: index + 1]
        S2["entropy"] = last_e2
        S2["data"] = sort_data[index + 1 :]
        return S1, S2, entropy
    
    # 对数据进行分组
    def train(self, data):
        # 需要遍历的 key
        need_split_key = [0]
        # 将整个数据作为一组
        self.result.setdefault(0, {}) 
        self.result[0]["entropy"] = np.inf 
        self.result[0]["data"] = data
        group = 1
        for key in need_split_key:
            S1, S2, entropy = self.split(self.result[key]["data"])
            # 如果满足条件
            if entropy > self.min_threshold or group < self.max_group:
                self.result[key] = S1
                newKey = max(self.result.keys()) + 1 
                self.result[newKey] = S2
                need_split_key.extend([key]) 
                need_split_key.extend([newKey])
                group += 1
            else: 
                break
                
if __name__ == "__main__":
    dse = DataSplitByEntropy(group=6,threshold=0.3) 
    data = dse.load_data()
    dse.train(data)
    print("result is {}".format(dse.result))

输出结果为:


result is {0: {'entropy': 0.8112781244591328, 'data': array([[ 9,  0],
       [10,  1],
       [23,  0],
       [28,  0]])}, 1: {'entropy': 0.0, 'data': array([[342,   1],
       [361,   1],
       [453,   1],
       [561,   1],
       [592,   1],
       [641,   1]])}, 2: {'entropy': 0.0, 'data': array([[129,   0]])}, 3: {'entropy': 0.9709505944546686, 'data': array([[ 764,    0],
       [1210,    1],
       [2323,    0],
       [2398,    1],
       [2764,    1]])}, 4: {'entropy': 0.863120568566631, 'data': array([[ 49,   1],
       [ 56,   1],
       [ 63,   0],
       [ 87,   1],
       [ 88,   1],
       [ 97,   0],
       [121,   1]])}, 5: {'entropy': 0.0, 'data': array([[164,   0],
       [222,   0]])}}

分析结果可以看出,熵越大的簇类下数据对应的标签越凌乱,熵为0的簇类下数据对应的标签是一致的,这里可以自行调节group、threshold参数观察结果。

deepfm怎么处理离散特征和连续特征 你看到的这三行代码,做的是**连续数值 → 分箱(离散化) → 转成类别ID → 嵌入向量(Embedding)****连续数值 → Discretization(离散化) → 得到类别ID → Embedding(向量化)**把刚才得到的**离散编号(0,1,2...)** 变成**低维稠密向量**,给模型学习。✅ **两者都进入了Embedding → DeepFM → MMOE****把连续数字 → 变成 0,1,2,3,4... 的编号** 阅读详情

相关推荐

详解机器人标定

这里是机器人在取料之前,先把自己的角度补正到与 物料当前角度一致,到(X’,Y’)位置处,然后移动 CDx,Cdy,与物料位置也重合,然后去取料。可以使用实物标定,机器人抓住工件摆放9个位置,得到9个机械坐标,相机也得到9个像素坐标,(机器人每次需要回到固定位置拍照),然后标定。(X0,Y0)为旋转中心, (X1,Y1)及(X2,Y2)为工件在视野中旋转角度a的前后坐标,(Xt,Yt)为两点连线的延长。(rx0, ry0)为旋转中心,( x, y)为被旋转的点,(x0,y0)旋转后的点。

weixin_56819992的博客 7631

连续特征和离散特征

推荐算法数据处理

coderobot_的博客 979

足球赛事数据API:开发者生存指南(附真实踩坑记录)

作为一个既爱看球又爱写代码的老宅男,我这些年用过的足球API比看过的比赛还多。从最初被各种API文档折磨到怀疑人生,到现在能闭着眼睛调接口,中间的血泪史够写本书了。今天就把这些经验(和教训)分享给各位同好,特别是那些正在为"老板要做个足球App"而秃头的同行们。文档清晰免费层可用响应格式规范API-Sports免费额度大方支持GraphQL有中文文档(难得!Sportmonks数据全面有Webhook支持按需付费。

Happy0970的博客 2194

特征工程之连续/离散特征的处理

离散特征: 1.无序离散特征:one-hot encoding,比如所属国家、城市 (1)无序离散特征:one-hot encoding,比如所属国家,城市。(1)如果one-hot之后unique值不多可以不用做Embedding, (2)但是如果该特征unique值过多,比如所属国家、城市,onehot产生的矩阵过宽,这种情况下,我们的通常做法就是将其转换为embeddi...

qfikh的博客 6990

SolidWorks + AI:利用 DeepSeek AI 自动生成 VBA Macro 宏,实现智能化建模!

本教程介绍如何将集成到插件,实现的自动化操作。通过 DeepSeek AI,您可以快速生成高效的,提升!💡。

SolidWorksAPI的专栏 1万+

西门子200SMART自定义库开发实战:从PID到露点算法的工业应用

本文详细介绍了西门子200SMART自定义库开发实战,涵盖从PID控制到露点算法的工业应用。通过代码封装技巧、多语言支持和性能优化等高级开发方法,帮助工程师提升PLC编程效率。文章特别强调了自创库在实际项目中的优势,如恒温恒湿控制系统的成功案例,展示了自定义库在工业自动化中的强大应用价值。

lake5的博客 1028

特征工程|连续特征的常见处理方式(含实例)

点击标题下「小小挖掘机」可快速关注连续特征离散化可以使模型更加稳健,比如当我们预测用户是否点击某个商品时,一个点击该商品所属类别下次数为100次和一个点击次数为105次的用户可能具有相似...

abcdefg90876的博客 3023

[官方培训]07-UE材质基础 孙丹璐 Epic 笔记

勾选允许自定义深度写入再在模型上勾选然后可以通过Scene Texture节点拿到渲染的自定义深度信息,有了自定义深度信息就可以与当前渲染的像素深度进行对比,自定义深度信息存放的是最靠近我们的深度,如果当前像素离自定义深度比较远我们就不要这个像素。效果如下这种方案的缺点也很明显,因为这样看不到第二层的透明了,如果是两层的半透明的裙摆,这样就看不到第二层的裙摆了。对于半透明排序问题最根本能解决的还是光线追踪,ue5中又加入了OIT(基于像素的排序)。官方透明材质的理解和应用。

Tcohneyn的博客 1562

特征工程之连续特征与离散特征处理方法介绍

下面一篇是关于连续特征与离散特征处理的论文: Before I answer the above question, let us go through some basic ideas. Why do we binarize categorical features? We binarize the categorical input so that they can be thoug

1万+

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1082

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1414

特征处理之一——如何处理连续型特征

  对于传统的机器学习、数据挖掘问题,在CV、NLP领域之外,一般而言特征工程是很重要的。   对特征进行异常处理亦或是组合的时候往往需要考虑实际业务,但是在实际业务之外,也有那么一些常规的技巧可以遵循。   特征中的一大类别——连续型特征如何处理?   1、原始特征       没错,来句废话……连续型特征的原始形态就可以作为模型的输入,无论是linearRegression、神经网络,...

D的博客 3791

Visual Studio调试技巧与实用方法总结(实战经验分享)

本文根据多年的项目实战经验,详细介绍一些Visual Studio常用的高效调试手段与技巧。

dvlinker的技术专栏 3万+

特征工程——连续特征与离散特征处理方法

特征的标准化(归一化) z-score标准化:这是最常见的特征预处理方式,基本所有的线性模型在拟合的时候都会做 z-score标准化。具体的方法是求出样本特征x的均值mean和标准差std,然后用(x-mean)/std来代替原特征。这样特征就变成了均值为0,方差为1了。在sklearn中,我们可以用StandardScaler来做z-score标准化。当然,如果我们是用pandas做数据预处理...

Fan2g 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

连续特征的离散化 与 离散特征的连续化

0.前言 GBDT擅长处理连续特征 LR擅长处理海量离散特征 但是整合一个数据集都既有连续特征又有分类特征,这就涉及到连续特征的离散化和离散特征的连续化了 1.连续特征离散化 2.离散特征连续化 这篇论文详细介绍了一种根据变量的各个取值下目标变量的似然概率,将分类变量转化为连续变量的方法:https://kaggle2.blob.core.windows.net/forum-messa...

qq_23269761的博客 4414

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【069】连续特征离散化

内容目录一、工业界连续特征离散化二、离散化处理的一般过程三、离散化的优点四、连续特征和离散特征的处理原文见公众号:python宝一、工业界连续特征离散化  在工业界,很少直接将连续值作为...

小麦粒的Python 1338

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

连续特征和离散特征的处理

特征的标准化(归一化) 连续特征   z-score标准化:这是最常见的特征预处理方式,基本所有的线性模型在拟合的时候都会做 z-score标准化。具体的方法是求出样本特征x的均值mean和标准差std,然后用(x-mean)/std来代替原特征。这样特征就变成了均值为0,方差为1了。在sklearn中,我们可以用StandardScaler来做z-score标准化。当然,如果我们是用pandas...

youhuakongzhi的博客 2636

连续特征离散化处理的好处

在特征工程中,我们常常需要对连续型特征进行离散化处理,那么这么做有什么好处呢?下面做简单的总结: 1.离散特征的增加和减少都很容易,易于模型的快速迭代; 2.系数矩阵内机乘法运算速度更快,计算结果方便存储,易于扩展; 3.离散化后的特征对异常数据有很强的鲁棒性。比...

Edenn的博客 3478

离散特征和连续特征不同的处理方式

离散特征和连续特征不同的处理方式

小白的编程学习之旅 369

决策树如何处理取值为连续值的特征(属性)

        在介绍信息增益、信息增益率、基尼指数的时候都只是说了离散特征的处理,公式也是只针对离散特征,那么连续特征怎么办呢?         信息增益                         信息增益率 &n

雾隐雾现的至渝博客 2万+

连续特征离散化的好处

转自:https://note.youdao.com/ynoteshare1/index.html?id=024fa3dbabf4b5a07eb72c8021e60f62&type=note 连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里? A: ...

codestrom04 1455

连续特征离散化

连续特征离散化 首先from wiki给出一个标准的连续特征离散化的定义: 在统计和机器学习中,离散化是指将连续属性,特征或变量转换或划分为离散或标称属性/特征/变量/间隔的过程。这在创建概率质量函数时非常有用 - 正式地,在密度估计中。它是一种离散化的形式,也可以是分组,如制作直方图。每当连续数据离散化时,总会存在一定程度的离散化误差。目标是将数量减少到手头的建模目的可忽略不计的水平。 在金融领...

weixin_44930508的博客 410

Spark连续特征转化成离散特征

Spark连续特征转化成离散特征 当数据量很大的时候,分类任务通常使用【离散特征+LR】集成【连续特征+xgboost】,如果把连续特征加入到LR、决策树中,容易造成overfit。 如果想用上连续型特征,使用集成学习集成多种算法是一种方法,但是一是过程复杂了一些,另外训练过程会非常耗时,在不损失很多特征信息的情况下,可以考虑将连续特征转换成离散特征加入到LR模型中。 转换特征分成两种情况: ...

fly_time2012的专栏 545

机器学习特征连续、离散的区别

现在网上关于数据挖掘、机器学习中数据预处理阶段关于属性(特征)的各种连续,离散的变换,由于用词不清,真让人晕头转向。那么数据挖掘、机器学习中用于描述属性(特征)的”连续“,”离散“,”连续化“,”离散化“的这几个词到底是什么含义呢? 首先,韩家炜老师在他的书的第二章就对属性的几种类型进行了介绍: 1.标称属性: 即与名称有关,标称属性的值是一些符号或事物的名称。每个取值代表某种类别、或状态。 举个...

weixin_43461341的博客 1万+
上一篇: 特征交叉
下一篇: 类别特征
less97
博客等级 码龄12年 60粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值