基于sklearn同时处理连续特征和离散特征

PYTHON机器学习C4.5决策树的实现(连续值和离散值) PYTHON机器学习|C4.5决策树的实现 ''' 输入: 训练集 D=(x1,y1),(x2,y2),…,(xm,ym);     属性集 A=a1,a2,a3,…,ad; 过程:  生成节点node; if D中样本全部属于同一类别C then 将node标记为C类叶节点; return end if if A=∅ OR D中的样... 阅读详情

核心思路:

先用LabelEncoder对离散特征编码,因为onehotencoder只能处理数值

然后使用OneHotEncoder编码,生成稀疏表示的特征

再使用sparse.hstack连接连续特征和稀疏特征

为什么不使用pd.get_dummy呢,因为这样是直接生成的稠密矩阵,内存开销太大

 

# coding=utf-8
# @author: bryan
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from scipy import sparse

for feature in cate_feature + con_feature:
    data[feature] = LabelEncoder().fit_transform(data[feature].values)
enc = OneHotEncoder()
train_x=train[numeric_feature]
test_x=test[numeric_feature]
for feature in cate_feature+con_feature:
    enc.fit(data[feature].values.reshape(-1, 1))
    train_a=enc.transform(train[feature].values.reshape(-1, 1))
    test_a = enc.transform(test[feature].values.reshape(-1, 1))
    train_x= sparse.hstack((train_x, train_a))
    test_x = sparse.hstack((test_x, test_a))

# 文本one hot
from sklearn.feature_extraction.text import CountVectorizer
# 每行用空格join起来
data['corpus']=data['corpus'].apply(lambda x:' '.join(x.split(';')))
#如果corpus里面是数字,可能会提示empty vocabulary; perhaps the documents only contain stop words
#改成这样就行了CountVectorizer(token_pattern='(?u)\\b\\w+\\b')
property_feature = CountVectorizer().fit_transform(data['corpus'])
train_x=sparse.hstack((train_property_feature,train_x))

 

Sklearn 机器学习 数值离散化 指定区间 机器学习数据预处理中的数值离散化技术,通过Pandas实现业务驱动的自定义区间划分。 阅读详情

相关推荐

【sklearn实例】4--特征工程之离散值编码

离散特征 离散特征变量类型可以分为有序类和无序类。 无序类,价值相等且可区分,没有等级、顺序、排序、好坏等逻辑关系,各变量相互独立:性别(男/女)、颜色(赤橙黄绿青蓝紫)、登机口(A/B/C); 有序类:各变量有级别大小等逻辑关系:尺码(L/XL/XXL)、学历(高/中/低) 为何要编码 对无序类:为何不能直接对特征进行赋值,比如male1,female0。这是不科学的,因为这样一来就存...

qq_43243022的博客 3665

处理离散型特征和连续型特征共存的情况 归一化 论述了对离散特征进行one-hot编码的意义

处理离散型特征和连续型特征并存的情况,如何做归一化。 参考博客进行了总结: https://www.quora.com/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together 总结如下: 1、拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取值范围是

lujiandong1的专栏 1万+

Sklearn 机器学习 数值离散化 虚拟编码

通过 Sklearn 的 KBinsDiscretizer 将连续数值分箱为离散区间,再使用 OneHotEncoder 转换为模型可识别的独热编码。

Kant2048的博客 1315

sklearn库实现三种贝叶斯分类器

sklearn官方教程 https://scikit-learn.org/dev/modules/naive_bayes.html sklearn库朴素贝叶斯分类: https://blog.youkuaiyun.com/luanpeng825485697/article/details/78967139 三种贝叶斯分类参数介绍 https://www.cnblogs.com/JosonLee/p/10053...

weixin_43496455的博客 2942

sklearn中的离散化魔法:增量特征处理指南

在sklearn中使用模型进行增量特征的离散化是一种强大的技术,它可以帮助我们更好地处理连续特征,并提高模型的性能。通过本文的介绍和代码示例,我们可以看到如何使用和来实现特征的离散化。在实际应用中,合理地选择离散化策略和评估离散化特征的质量是至关重要的。随着机器学习技术的不断发展,特征离散化将继续在数据处理和模型训练中发挥重要作用。

2401_85702623的博客 632

开关电源|控制方式PWM、PFM、混合调制

频率调制器根据误差放大器的输出大小来改变方波信号的频率,若负载电流突然增加,输出电压 Vout随之下降,反馈电压 VFB 减小,此时误 差放大器的输出增高,频率调制器输出方波信号的频率增大,增加电感充电次数;若负载电流突然增加,输出电压Vom随之下降,反馈电压Vr减小,此时误差放大器的输出增高,PWM比较器输出方波信号的占空比增大,增加电感充电时间:若负载电流突然下降,PWM比较器输出方波信号的占空比减小,减少电感充电时间,从而稳定输出电压。它是在固定开关频率下,通过改变脉冲宽度来调节占空比的。

weixin_46969363的博客 1万+

sklearn处理离散变量的问题——以决策树为例

决策树是怎么知道哪一列是离散特征的?

QIzikk的博客 2477

Android应用隐私合规自动化检测:Frida与Camille实战指南

在移动应用安全与隐私合规领域,动态代码插桩技术已成为核心检测手段。其原理是通过运行时注入,实时监控和修改应用行为,从而绕过传统静态分析的局限。这项技术的核心价值在于能够精准捕获应用在运行时的敏感数据调用与网络传输行为,为隐私合规审计、安全测试提供直接证据。在实际应用场景中,它尤其适用于自动化检测违规收集个人信息、追踪数据流向等任务。本文聚焦于利用Frida这一动态插桩框架,结合Camille隐私合规检测工具集,构建自动化监控环境。通过注入JavaScript代码,实现对Android敏感API(如获取设备标

weixin_34254464的博客 388

离散特征和连续特征混合_混合蛋白和特征

Java语言的开发人员精通C ++和其他包含多重继承的语言,从而使类可以从任意数量的父级继承。 多重继承的问题之一是无法确定派生自哪个父继承功能。 这个问题称为菱形问题 (请参阅参考资料 )。 多重继承中固有的菱形问题和其他复杂性启发了Java语言设计人员选择单一继承加接口。 接口定义语义,但不定义行为。 它们很好地用于定义方法签名和数据抽象,并且所有Java.next语言都支持Java接...

cusi77914的博客 1678

C++碰撞检测库FCL安装(MinGW,CMake)

FCL碰撞检测库、libccd\Eigen库编译配置,全流程问题记录

weixin_45650767的博客 4676

基于TDOA的chan算法(定位算法)

Chan算法原理 TDOA(TDOA,the time differences of arrival,到达时间差),Chan算法是TDOA定位方法的一个很好用的方法。 Chan算法是非递归双曲线方程组解法,具有解析表达式解,主要特点是:在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加已确定点的数量来提高算法精度。 该算法的推导前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。二维情况下,可分为只有三个点参与定

优快云不再更新 2万+

利用python对包含离散型特征和连续型特征的数据进行预处理

利用python sklearn preprocessing对包含离散型特征和连续型特征的数据进行预处理 摘自https://blog.youkuaiyun.com/wotui1842/article/details/80697444

judyqing的博客 3544

Juniper SRX PPPoE配置

set interfaces pp0 unit 1 ppp-options chap default-chap-secret 拨号用户名密码。set interfaces pp0 unit 0 ppp-options chap default-chap-secret 拨号密码。set interfaces pp0 unit 0 ppp-options chap local-name 拨号用户名。6号口接运营商进行拨号。

Jian Sun_的博客 750

day08 标签编码与连续变量处理

Python字典是另一种可变容器模型,可存储任意类型对象。如字符串、数字、元组等其他容器模型。因为字典是无序的,所以不支持索引和切片。格式:字典名 = {元素1,元素2,……}元素以键值对存在==key(键值):value(实值)# 使用花括号创建字典# 访问字典中的值Tip:1.key不可以重复,否则只会保留第一个;2.value值可以重复;3.key可以是任意数据类型,但不能出现可变的数据类型,保证key唯一4.key一般形式为字符串。

weixin_68674900的博客 1010

世界职业院校技能大赛财经赛道项目参考逐字稿五

世界职业院校技能大赛财经赛道项目参考逐字稿五

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 139

各向同性、VTI、TTI以及双相介质波场数值模拟

各位读者,大家好!在今天的文章中,我将介绍关于波场数值模拟中的各向同性、VTI(垂直横向等参数介质)、TTI(倾斜横向等参数介质)以及双相介质的基本概念。同时,我也会提供一些基础的Fortran代码片段,供大家了解和学习。

qq_38334677的博客 1709

进行数据离散化的原因_011-09-读书笔记:数据离散化

原文:《Python 数据分析与数据化运营》第3章:11条数据化运营不得不知道的数据预处理经验所谓离散化,就是把无限空间中有限的个体映射到有限的空间中。数据离散化操作大多是针对连续数据进行的,处理之后的数据值域分布将从连续属性变为离散属性,这种属性一般包含2个或2个以上的值域。离散化处理的原因:节约计算资源,提高计算效率算法模型(特别是分类算法)的计算需要增强模型的稳定性和准确度特定数据处理和分析...

weixin_39996742的博客 640

openssl命令数据摘要详解(SM3、sha256、MD5、dss1、mdc2、ripemd160)

SM3是由中国密码学家设计的密码哈希函数,是中国国家密码管理局(National Cryptographic Authority,简称:CNCA)颁布的国家密码算法标准。SM3属于密码杂凑函数家族,它可以计算任意长度的消息并生成固定长度(256比特,即32字节)的哈希值。SM3生成的哈希值长度为256比特(32字节),不管输入消息的长度如何,输出始终是固定的。SM3将输入数据划分为512比特(64字节)的分组,并对每个分组进行处理。

N阶二进制的博客 4461

【机器学习】one-hot编码

one-hot编码的思想就是将离散特征变成向量 假设特征 ???? 有三种取值 {????,????,????} ,这三种取值等价,如果我们使用1,2,3三个数字表示这三种取值,那么在计算时就会产生偏差,有一些涉及距离度量的算法会认为,2和1离得近,3和1离得远,但这三个值应该是等价的,这种表示方法会造成模型在判断上出现偏差。 解决方案就是使用一个三维向量表示他们,用 [1,0,0] 表示a, [0,1,0] 表示b, [0,0,1] 表示c,这样三个向量之间的距离就都是相等的了,任意两个向量在欧式空间的距

joycychou的博客 1355

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

7月8号打卡

字典是一种可变容器模型,用于存储键值对。每个键必须是唯一的,而值可以重复。字典通过键快速访问对应的值,适合高效查找和动态数据管理。

2503_92645866的博客 1673

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

单变量数据衍生

1.连续变量重编码 连续变量所用数据格式 1.1标准化 a.0-1标准化 import pandas as pd pd.set_option('display.max_columns',None)#显示所有列 data=pd.read_csv(r"C:\Users\15187\Desktop\games1.csv") input=data["gameDuration"] 自编函数 def max_min(input): output=(input-input.min())/(input.max(

worther的博客 495

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

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

机器学习从0到1——4.朴素贝叶斯分类器

朴素贝叶斯分类器算法原理与代码实现

u013867253的博客 1071

连续特征离散化(整理)

文章目录离散特征为什么要连续化离散化处理的一般过程离散化方法的分类无监督的方法有监督的方法卡方检验(CHI)信息增益法(IG)离散化方法的评价离散化工具sklearn.preprocessing.KBinsDiscretizerpd.cut参考 离散特征为什么要连续化 作者:严林 链接:https://www.zhihu.com/question/31989952/answer/54184582 ...

yongrl的博客 7425

python——机器学习:sklearn数据预处理preprocessing连续特征离散化和类别特征编码

本篇整理通过sklearn的preprocessing模块,进行连续特征离散化和离散特征编码的方法。为数据预处理的一部分。

weixin_53848907的博客 1202

《sklearn机器学习——数据预处理》离散化

本文介绍了sklearn中的离散化方法,重点解析了KBinsDiscretizer类的使用。离散化可将连续特征转换为离散区间,用于简化模型、增强鲁棒性。文章详细说明了参数配置(分箱数量、编码方式、分箱策略)和输出结果类型,并提供了示例代码演示等宽分箱和独热编码转换过程。同时指出了离散化的应用场景(如朴素贝叶斯模型)和注意事项(数据分布影响、边界处理等),强调了该方法在特征工程中的实用价值。

m0_71002812的博客 1287

连续属性离散化与sklearn.preprocessing.KBinsDiscretizer

1、连续属性离散化 离散化 (Discretization) (有些时候叫 量化(quantization) 或 分箱(binning)) ,是将连续特征划分为离散特征值的方法。 离散化可以把具有连续属性的数据集变换成只有名义属性(nominal attributes)的数据集。 2、K-bins 离散化(分箱) KBinsDiscretizer 类使用k个等宽的bins把特征离散化:默认情况下...

qq_38384924的博客 1万+
上一篇: python计算稀疏表示的TF-IDF
下一篇: IJCAI-18 阿里妈妈搜索广告算法大赛亚军解决方案
Bryan__
博客等级 码龄12年 2500粉丝 166原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值