离散型特征的处理方法

机器学习——特征工程——数据离散化(时间离散,多值离散化,连续数据离散化,分位数,聚类法,频率区间,二值化) 离散化:就是把无限空间中有限的个体映射到有限的空间中。数据离散化操作大多是针对连续数据进行的,处理之后的数据值域分布将从连续属性变为离散属性。 离散化方式会影响后续数据建模和应用效果: 使用决策树往往倾向于少量的离散化区间,过多的离散化将使得规则过多受到碎片区间的影响。 关联规则需要对所有特征一起离散化,关联规则关注的是所有特征的关联关系,如果对每个列单独离散化将失去整体规则性。... 阅读详情

机器学习中,常常在数据集中会遇到一些离散特征,对于这些离散特征相比连续特征要用不同的处理方法,常见的方法有LabelEncoder与OneHotEncoder。

LabelEncoder

LabelEncoder用来对离散型分类型特征值进行编码,可以对本文编码,也可以对数字编码。sklearn中也提供给相应的工具包以便使用:

sklearn.preprocessing.LabelEncoder

常用方法如下:

fit(y) :训练 y数据集,与其他模型的fit方法类似。

fit_transform(y):相当于先进行fit再进行转换,返回标签编码。 

inverse_transform(y):将标签编码返回为初始值。 

transform(y) :直接返回标签编码。

示例如下:

from sklearn.preprocessing import LabelEncoder

#文字内容
le = LabelEncoder()

le.fit_transform(['天津','北京','上海','南京','北京'])
#array([3, 1, 0, 2, 1], dtype=int64)
le.transform(['天津','北京','上海','南京','北京'])
#array([3, 1, 0, 2, 1], dtype=int64)
le.inverse_transform([3, 1, 0, 2, 1])
#array(['天津', '北京', '上海', '南京', '北京'], dtype='<U2')

#数字内容
le.fit_transform([2,2,4,8,7])
#array([0, 0, 1, 3, 2], dtype=int64)
le.transform([2,2,4,8,7])
#array([0, 0, 1, 3, 2], dtype=int64)
le.inverse_transform([0, 0, 1, 3, 2])
#array([2, 2, 4, 8, 7])

通过上面的实例可以看到,LabelEncoder既可以对文字内容编码,也可以对数字内容编码,都是以0开始的数字为不同的内容编码,相同的内容则用同一数字。但是当LabelEncoder的结果对于计算机处理数据时的效果并不是很好,此时会考虑onehot编码。

OneHotEncoder

OneHotEncoder同样是对离散特征编码,离散特征中有多少不同的值,就用多少维来表示该特征。这是与LabelEncoder最大的区别所在。sklearn提供的工具如下:

sklearn.preprocessing.OneHotEncoder(n_values=None, categorical_features=None, categories=None, sparse=True, dtype=<class ‘numpy.float64’>, handle_unknown=’error’)

(部分参数新版本可能取消,只需了解sparse、categories即可)

参数含义
sparse默认为True,如果设置为True将返回稀疏矩阵,否则将返回一个数组。
categories默认为'auto',从训练数据中自动确定类别。可选为list,categories[i]保存第i列中预期的类别。

常用方法如下:

fit(y) :训练 y数据集,与其他模型的fit方法类似。

fit_transform(y):相当于先进行fit再进行转换,返回标签编码。 

inverse_transform(y):将标签编码返回为初始值。 

transform(y) :直接返回标签编码。

示例如下:

from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder()

x=[['天津'],['北京'],['上海'],['南京'],['北京']]

ohe.fit_transform(x).toarray()
#array([[0., 0., 0., 1.],
#       [0., 1., 0., 0.],
#       [1., 0., 0., 0.],
#       [0., 0., 1., 0.],
#       [0., 1., 0., 0.]])
ohe.transform(x).toarray()
#array([[0., 0., 0., 1.],
#       [0., 1., 0., 0.],
#       [1., 0., 0., 0.],
#       [0., 0., 1., 0.],
#       [0., 1., 0., 0.]])
ohe.inverse_transform(array([[0., 0., 0., 1.],
                             [0., 1., 0., 0.],
                             [1., 0., 0., 0.],
                             [0., 0., 1., 0.],
                             [0., 1., 0., 0.]]))
#array([['天津'],
#       ['北京'],
#       ['上海'],
#       ['南京'],
#       ['北京']], dtype=object)

可以看到,与LabelEncoder不同的地方在于OneHotEncoder将内容编码为0,1的形式,LabelEncoder是将内容编辑为0,1,2,...的形式。为了使非偏序关系的变量取值不具有偏序性,并且到圆点是等距的。使用one-hot编码,让特征之间的距离计算更加合理。同时one-hot方法也有缺陷,当类别的数量很多时,特征空间会变得非常大,计算复杂度会变高,成本也会变大。

除此之外呢,pandas中的get_dummies()函数也具有与one-hot相同的功能,感兴趣的同学可以自行尝试~

特征工程三部曲 — (2)特征编码 在上一篇中,我们解决了从哪些维度去刻画一个对象的问题。 在本篇中我们聊一下特征表达(或者说特征编码)的问题,即从这些选定的维度,如何去刻画特定的对象。 01特征表达要考虑哪些方面? 从一个完整的机器学习任务来看,在选择完特征之后,特征表达的任务就是要将一个个的样本抽象成数值向量,供机器学习模型使用。因此,特征表达就要兼顾特征属性和模型需求这两个方面。 特征属性 特征按... 阅读详情

相关推荐

机器学习的数据类型及操作

不同类型的数据需要采用不同的处理方式和操作,以便更好地进行特征提取、建模和预测等任务。在实际应用中,根据具体情况选择合适的数据类型和相应的操作,能够提高机器学习算法的效果和性能。总结来说,机器学习中常见的数据类型包括数值型数据、类别型数据、文本型数据、图像型数据和时序型数据。针对不同类型的数据,我们需要选择合适的操作进行预处理、特征提取和建模等任务,以便更好地应用机器学习算法。在机器学习中,数据是非常重要的,不同类型的数据需要采用不同的处理方式和操作。下面我们将介绍机器学习中常见的数据类型以及对应的操作。

code_program481的博客 428

机器学习数据预处理1:独热编码(One-Hot)及其代码

1. 为什么使用 one-hot 编码? 问题: 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。 这些特征值并不是连续的,而是离散的,无序的。 目的: 如果要作为机器学习算法的输入,通常我们需要对其进行特征数字化。什么是特征数字化呢?例如: 性别特征:["男","女"] ...

梦Dancing的博客 5万+

特征选择与提取

特征选择与提取 1. 对IRIS数据集实现特征选择,利用可分离性判据,在4个特征中选择2个。 # 导包 import matplotlib.pyplot as plt import numpy as np import pandas as pd import math # 数据准备 iris = pd.read_excel('Iris-3-class.xlsx',index_col=0) X = iris.iloc[:,0:4].values labels = np.unique(iris['class'

林景的博客 1276

机器学习总结

1.连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点: 0. 离散特征的增加和减少都很容易,易于模型的快速迭代; 1. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展; 2. 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰; 3

Alex的博客 1234

MATLAB算法实战应用案例精讲-【数模应用】特征工程

特征工程(Feature Engineering)特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。特征工程简单讲就是发现对因变量y有明显影响作用的特征,通常称自变量x为特征,特征工程的目的是发现重要特征。如何能够分解和聚合原始数据,以更好的表达问题的本质?这是做特征工程的目的。特征工程是数据挖掘模型开发中最耗时、最重要的一步。

qq_36130719的博客 525

ML之FE:数据预处理/特征工程之两大类特征(连续型特征/离散型特征)、四大数据类型(数值型/类别型/字符串型/时间型)简介、类别型特征编码的基础代码实现之详细攻略

​ ML之FE:数据预处理/特征工程之两大类特征(连续型特征/离散型特征)、四大数据类型(数值型/类别型/字符串型/时间型)简介、类别型特征编码的基础代码实现之详细攻略 目录 两大类特征(连续型特征/离散型特征) 四大数据类型 1、数值型变量/特征 2、类别型变量/特征 3、文本型(字符串型)变量/特征 4、时间型变量/特征 相关文章 DataScience:数据预处理/特征工程之两大类特征(连续型特征/离散型特征)、四大数据类型(数值型/类别型/字

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 8209

离散型特征处理get_dummies()方法

官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.get_dummies.html get_dummies():对离散型数据进行one-hot编码 离散特征的编码分为两种情况: 1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码。 2、离散特征的取值有大...

勤劳的大乐乐的博客 1922

ML之Tree:树类模型的简介、决策树模型常见分类(CART、ID3、C4.5)、【数值型】特征中“离散型”特征和“连续型”特征的处理区别、树类模型处理【类别型】特征的两种策略及其代码实战

​ ML之Tree:树类模型的简介、决策树模型常见分类(CART、ID3、C4.5)、【数值型】特征中“离散型”特征和“连续型”特征的处理区别、树类模型处理【类别型】特征的两种策略及其代码实战 目录 相关文章 树类模型的简介 理论分析:决策树模型本身的内部结构是对【数值型】特征中的“连续型”特征和“离散型”特征的处理简介 案例实战:树类模型处理【类别型】特征的两种策略 相关文章 ML:机器学习中有监督学习算法的四种最基础模型的简介(基于概率的模型、线性模

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 2556

监督学习中如何处理连续型和离散型特征?

在监督学习中处理连续型和离散型特征的方法不同。对于连续型特征,可以进行特征缩放和标准化,使得模型可以更好地理解和处理这些特征。而离散型特征,则可以通过特征编码将其转换为可供模型使用的数字表示。以上提供的计算步骤和Python代码示例可以帮助工程师在实践中灵活处理不同类型的特征,并提高模型的性能。

coszhuang的博客 1046

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 253

国产数据库PolarDB-X实战:5分钟快速搭建本地开发环境(附Docker一键部署脚本)

本文提供了一份详尽的国产分布式数据库PolarDB-X本地开发环境搭建指南。通过Docker Compose一键部署脚本,开发者可在5分钟内快速启动一个功能完整的PolarDB-X实例,涵盖环境准备、脚本解析、连接验证及日常维护,极大简化了国产数据库的入门和体验流程。

weixin_29246195的博客 357

特征工程7种常用方法

向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayx一、特征工程简单说,特征工程是能够将数据像艺术一样展现的技术。因为好的特征工程很好的混合了专业领域知识、直觉和基本的数学能力;本质上说,呈现给算法的数据应该能拥有基本数据的相关结构或属性 。当你做特征工程时,其实是将数据属性转换为数据特征的过程,属性代表了数据的所有维度,在数据建模时,如果对原始数据的所有属性进行学...

datayx的文章 3846

InfiniteTalk (Wan2.1) 数字人 A800 落地实战:从依赖地狱到完美运行的保姆级指南

摘要:本文详细记录了在A800(80GB)服务器上部署InfiniteTalk开源数字人项目的完整流程。该项目基于阿里Wan2.1视频生成模型,支持无限时长流式生成,但环境配置极其复杂。作者总结了18个关键问题点,包括Python版本冲突、CUDA算子缺失等,并提供了黄金配置方案:使用Python3.10+PyTorch2.5.1环境,精准控制FlashAttention等核心库版本,以及针对A800的显存优化策略。最终实现480P视频30秒/步的生成速度,相比默认配置提升3.7倍性能。

软件工程师文艺 2041

特征工程(中)-特征表达

点击上方“大数据与人工智能”,“星标或置顶公众号”第一时间获取好内容作者丨stephenDC这是作者的第14篇文章在上一篇《特征工程(上)—特征选择》中,我们解决了从哪些...

大数据与人工智能 607

当版图同学只给GDS文件时,我是这样用Calibre PEX和Cadence做后仿真的(保姆级避坑)

本文详细介绍了在模拟IC设计中,当仅获得GDS文件时,如何利用Calibre PEX和Cadence进行高效后仿真的完整流程。涵盖从寄生参数提取到Spectre模型创建的实战技巧,特别针对版本兼容性、文件独立性和参数可调性等常见问题提供解决方案,帮助工程师规避协作中的典型陷阱。

weixin_42556197的博客 242

CentOS 7 离线升级 OpenSSH 9.9p2 保姆级教程(含依赖包下载与常见报错解决)

本文提供了一份详尽的CentOS 7系统离线升级OpenSSH至9.9p2版本的完整教程。针对无外网环境,重点讲解了依赖包(尤其是OpenSSL 3.x)的离线下载与编译部署,并深入解决了编译过程中常见的“libcrypto.so缺失”等动态库链接错误。教程涵盖从环境准备、源码编译、服务配置到系统集成的全流程,最后还提供了关键的回滚方案与应急预案,是运维人员在内网环境中进行安全加固的实用指南。

weixin_29248313的博客 323

【ML】特征工程简介以及7种常用方法(续更)

1 特征工程简介 本质上说,呈现给算法的数据应该能拥有基本数据的相关结构或属性 。 当你做特征工程时,其实是将数据属性转换为数据特征的过程,属性代表了数据的所有维度,在数据建模时,如果对原始数据的所有属性进行学习,并不能很好的找到数据的潜在趋势,而通过特征工程对你的数据进行预处理的话,你的算法模型能够减少受到噪声的干扰,这样能够更好的找出趋势。 但是,对于特征工程中引用的新特征,需要验证它的确提高了预测的准确度,而不是加入了一个无用的特征,不然只会增加算法运算的复杂度。 好的特征甚至能够帮你实现使用简单的

西瓜太郎 722

TOGAF9.2/10 认证基础知识点概览表

(考点解析:业务场景是一种重要的技术,可以在企业架构的各个阶段使用,主要是架构愿景和业务架构,但如果需要,也可以在其他架构域中使用,以直接从业务的高级需求中派生架构的特征。“哪里”可以看作是对相关企业的界定、“为什么”可以被视为组织环境中的关键驱动因素和要素、“谁”是指确定发起人利益相关者和受业务指令影响的其他主要利益相关者,以创建企业架构,并确定他们来自企业的需求和优先级、他们与企业的关系以及彼此之间所需的工作行为。它是业务驱动和业务主导的,它结 合了所有业务线的必要努力,以实现所需的能力。

2302_81497763的博客 2076

机器学习系列09:数据预处理——处理离散型数据

如果原有的样本(行)在 color 列的取值是 green,那么对应的 dummy 特征中只有 color_green 列取值为 1,其他列为 0。离散型数据分为两种:有序和无序。我们可以利用 scikit-learn 提供的 ColumnTransformer 对不同的列做不同的转换,只需要传入(处理步骤名称,转换器,列序号)组成的列表就行了。目前没有一个合适函数可以帮助我们将有序的离散型特征取值映射到对应大小关系的数值上,我们需要自己定义它们的大小关系,假设:XL = L + 1 = M + 2。

加百力 的技术博客 2939

冠层分析法提取叶面积指数及其应用

冠层分析法是利用植物冠层空间结构分析LAI的方法。其基本原理是通过相机或扫描仪对植物冠层垂直方向的照片或图像进行获取,再运用图像处理方法实现植被的自动识别和覆盖度计算,以此推算LAI。假设有一块田地,需测量其LAI,首先在田地中央设置一杆高度为3米、朝向田地中心、覆盖角度为50度的相机。利用上述函数,对相机采集到的图像进行处理,即可得到田地的LAI。在Matlab中,读取图片可以使用imread函数,对图片进行预处理可以使用imadjust函数调整灰度,使用imbinarize函数进行二值化处理。

m0_47037246的博客 739

【华为OD机试真题 新系统】1029、字符串处理 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1029、字符串处理 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备战华为od,

KJ.JK 218

特征工程:连续数值v.s.离散类别的处理方法(二)

本文是学习数据科学家 Dipanjan Sarkar介绍特征工程的博客翻译文。 数值型数据是指连续型数据,离散型数据表示不同类目。整数和浮点数是连续型数值数据中最常见也是最常使用的数值型数据类型。即使数值型数据可以直接输入到机器学习模型中,仍需要在建模前设计与场景、问题和领域相关的特征。 (一)连续型数值数据的特征工程处理方法 原始特征是直接从数据集中得到,没有额外的操作或处理。导出特征

公众号:瑞行AI 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

亲测有效|处理风控数据特征缺失的一种方法

亲测有效|处理风控数据特征缺失的一种方法

weixin_45545159的博客 985

精雕软件(JDpaint) 5.5 绿色版

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

特征处理总结

参加kaggle的都知道,特征处理比跑模型重要的多,在特征处理上的时间也更多,这里总结一下常见的特征处理方法,在书上或者博客上看见一些比较好的处理特征的方法,我就总结在这里,并注明出处,持续更新。。。 先看看特征工程的总体,下面这幅图来自一次kaggle的特征工程总结,后面的总结不像这幅图系统,但是我会做到尽量分类,尽量系统。 离散型特征 离散型的值出现次数少 如果某一列是离散型特征,而且这一列...

weixin_30345055的博客 133

『One-Hot 编码』在机器学习数据集中,为什么使用one-hot编码表示离散型特征?

为什么要用One-Hot编码? 在数据集中,经常碰到离散型的特征,比如:国家∈{中国,英国,法国,德国…} 如果我们使用country=0表示中国,…,country=3表示德国,这样的表示方法,无法在欧式空间里计算出合理的样本点之间的距离。 用自然数表示离散特征无法合理计算样本点距离? 保持两个样本点的其他特征不变(以求方便用0表示),只考虑国家这个特征(加粗,用自然数表示),那么有3个样本向量可以表示为: person1 = [0, 0, 0, 0] (中国人) person2 = [0, 0, 3

sdutstudent的博客 797

特征工程之特征选择(2)----卡方过滤

文章目录问题的引入卡方检验卡方检验概述对负数特征的处理示例1导入相关模块数据处理过滤前随机森林分类器表现卡方过滤1---保留300个特征参数k的学习曲线对方法1中k值设定的思考示例2概述获得p值k值计算总结 问题的引入 方差过滤掉的是哪些特征方差不高于阈值的特征,留下了的是方差比较大的特征,这只能反应该特征变化比较多,并不能反映于标签之间的直接相关性。 我们希望选出的是与标签相关且有意义的特征,因为这样的特征能为我们提供大量的信息。如果特征与标签相关性很差,只会白白浪费我们的计算内存与时间。并且可能给我们的

weixin_43776305的博客 3504
上一篇: 数据标准化的方法
下一篇: NLP资源清单
DataCastle
博客等级 码龄10年 870粉丝 202原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值