前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【python】数据挖掘分析清洗——离散化方法汇总

【python】数据挖掘分析清洗——离散化方法汇总

原创
作者头像
用户10828570
发布于 2023-11-08 11:31:14
发布于 2023-11-08 11:31:14
74500
代码可运行
举报
文章被收录于专栏:blankxxc数据挖掘blankxxc数据挖掘
运行总次数:0
代码可运行

@TOC


前言

离散化是数据清洗中,非常重要的一部分,后续的标准化、异常值处理、模型等,都需要将一些文本数据进行离散化。这里我将离散化分为两大类别,数值型数据离散化,字符数据离散化


一、字符数据离散化

将字符离散化,是为了后续的数据清洗能够正常进行,因为带有字符的数据无法进行很多数据清洗操作,这里以数据的'报告类型','会计准则','货币代码',作为举例,进行说明。

1.1 onehot独热

利用独热编码进行处理,将出现过的字符进行独热处理,变为多维。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
emb_dummies_df = pd.get_dummies(data['会计准则'],prefix=data[['会计准则']].columns[0])
#prefix表示列名在值的前面要添加的字符串
emb_dummies_df
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以通过独热编码将该列的值,转化多维的数字表示,但是会导致维度上升,增大计算量。还可以通过k-means先将数据进行聚类之后再进行编码。

1.2 Factoring离散编码

刚刚是将单列变为多维的数据,用1、0表示是否有这个数字。而Factoring是将这一列的数字转化为1、2....n 取决于有多少个类,下面给出代码和例子

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
data['会计准则'] = pd.factorize(data['会计准则'])[0]
data[['会计准则']]
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

阶段性小总结: 这里用的都是单列的离散化处理,除了这些还有像TF-IDF这类的编码,常用于文本的分析,后续需要有空的话可能会继续更新一波.

二、数值数据离散化

2.1 Binning(数据分箱)

就是将数据按区域进行划分,比如1-30,30-100,100-1000进行划分得到不同的区域的类,以此进行分析。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
 #与区间的数学符号一致, 小括号表示开放,中括号表示封闭, 可以通过right参数改变
print(pd.cut(ages, bins, right=False))#qcut函数是根据均等距离划分

#单个列进行划分
train_data['Fare_bin'] = pd.qcut(train_data['Fare'],5) #5是指分成五份

#自定义范围划分
bins = [0,59,70,80,100]
df['Categories'] = pd.cut(df['score'],bins) #bins的各值作为区间的边

# 可以通过labels自定义箱名或者区间名 用于多个列进行划分
group_names = ['Youth', 'YonngAdult', 'MiddleAged', 'Senior']
data = pd.cut(ages, bins, labels=group_names)
print(data)
print(pd.value_counts(data))

# 如果将箱子的边替代为箱子的个数,pandas将根据数据中的最小值和最大值计算出等长的箱子
data2 = np.random.rand(20)
print(pd.cut(data2, 4, precision=2))   # precision=2 将十进制精度限制在2位

# qcut是另一个分箱相关的函数, 基于样本分位数进行分箱。取决于数据的分布,使用cut不会使每个箱子具有相同数据数量的数据点,而qcut,使用
# 样本的分位数,可以获得等长的箱
data3 = np.random.randn(1000)   # 正太分布
cats = pd.qcut(data3, 4)
print(pd.value_counts(cats))

数据分箱(binning)是一种将连续变量离散化的方法,它将连续的数据范围划分成若干个有序的、互不重叠的区间,然后将数据映射到对应的区间中。数据分箱的意义在于:降低复杂度:对于某些机器学习算法来说,连续变量的处理可能会增加计算复杂度。分箱可以将连续变量转化为离散变量,降低计算复杂度,同时也便于处理缺失值和异常值。提高预测准确性:在一些场景下,离散化后的数据可以更好地揭示变量之间的关系,提高模型的预测准确性。例如,在信用评分模型中,将收入分成若干个等级可以更好地捕捉收入与违约率之间的非线性关系。方便解释和可视化:离散化后的数据更容易解释和可视化。例如,在营销分析中,将年龄分成若干个组可以更清楚地展示不同年龄段的人口分布和消费习惯。

总结

连续变量离散化: 连续变量离散化将连续的数据范围划分成若干个有序的、互不重叠的区间,然后将数据映射到对应的区间中。离散化后的数据可以更好地揭示变量之间的关系,提高模型的预测准确性。此外,连续变量离散化还可以降低计算复杂度,方便处理缺失值和异常值,并且更容易解释和可视化。字符离散化: 字符离散化将字符型数据转化为离散型数据。离散化后的数据可以更好地应用于分类、聚类、关联规则挖掘等算法中。例如,在文本分类中,将文本转化为词袋模型后,可以通过离散化将每个词语转化为一个特征,并将文本转化为一个向量。此外,字符离散化还可以方便数据处理,例如数据去重、数据压缩等。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

推荐人: 计算机魔术师

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【说站】python数据离散化是什么
1、连续属性的离散化就是将连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间的属性值。
很酷的站长
2022/11/23
4520
【说站】python数据离散化是什么
Pandas 对数值进行分箱操作的4种方法总结对比
来源:DeepHub IMBA本文约1500字,建议阅读5分钟我们将讨论使用 python Pandas 库对数值进行分箱的 4 种方法。 分箱是一种常见的数据预处理技术有时也被称为分桶或离散化,他可用于将连续数据的间隔分组到“箱”或“桶”中。在本文中,我们将讨论使用 python Pandas 库对数值进行分箱的 4 种方法。 我们创建以下合成数据用于演示 import pandas as pd # version 1.3.5import numpy as npdef create_df():df
数据派THU
2022/05/16
1.1K0
Pandas 对数值进行分箱操作的4种方法总结对比
pandas:数据离散化与离散化数据的后期处理(one-hot)
  对于某些机器学习算法来说,像决策树、随机森林、朴素贝叶斯。他们的数据集大多数都是针对的离散型数据。因此做出有效的数据离散化,对于降低计算复杂度和提高算法准确率有很重要的影响。
朱小五
2020/03/16
3.1K0
pandas:数据离散化与离散化数据的后期处理(one-hot)
信用卡“坏账”客户分析(二)
总第98篇 信用卡“坏账”客户分析(二)终于来了,本篇主要针对信用卡客户进行建模,建立评分卡,给每个客户进行打分,通过该客户的得分来判断该客户的“好坏”。 传送门:信用卡“坏账”客户分析(一) 前言 前面的推文《信用卡坏账客户分析》对一些[坏账客户]做了一些基本的描述性分析,这篇将针对所有的信用卡用户建立一个评分标准,即评分卡,类似于芝麻信用分一样,用来评判用户的履约能力和违约风险。 一些数据预处理以及描述性分析,在前文中已经写过,本篇不再赘述,直接进入评分卡建立阶段。 特征选择 1.共线性检测 共线
张俊红
2018/04/11
3K0
信用卡“坏账”客户分析(二)
机器学习(十六)特征工程之数据分箱
数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的“分箱”的方法。
致Great
2019/01/28
13.3K0
机器学习(十六)特征工程之数据分箱
Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记
参考链接: Python | pandas 合并merge,联接join和级联concat
用户7886150
2020/12/26
5.9K0
干货:用Python进行数据清洗,这7种方法你一定要掌握
导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复、错误、缺失、异常类数据。
IT阅读排行榜
2018/12/18
10.8K0
​特征工程系列:特征预处理(上)
关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~
石晓文
2019/08/29
1.4K0
​特征工程系列:特征预处理(上)
python 数据分析基础 day18-使用pandas进行数据清洗以及探索
今天是读《python数据分析基础》的第18天,读书笔记的内容是使用pandas进行数据清洗以及探索 由于原始数据在某种程度上是“脏”的,原始数据并不能完全使用于分析。因此,需要为其进行清洗。而为了解数据的大致情况,则需要进行数据探索。 以下是进行简单的数据清洗以及探索的代码: 注:数据来源于https://github.com/cbrownley/foundations-for-analytics-with-python/tree/master/statistics/churn.csv #数据探
billyang916
2018/05/02
1.3K0
数据处理 | pandas入门专题——离散化与one-hot
在上一篇文章当中我们介绍了对dataframe进行排序以及计算排名的一些方法,在今天的文章当中我们来了解一下dataframe两个非常重要的功能——离散化和one-hot。
TechFlow-承志
2020/08/06
7050
​特征工程系列:特征预处理(上)
关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问、动手达人,期待与大家一起交流探讨机器学习相关内容~
木东居士
2019/08/08
1K0
​特征工程系列:特征预处理(上)
「特征工程」之零基础入门数据挖掘
摘要:对于数据挖掘项目,本文将学习应该从哪些角度做特征工程?从哪些角度做数据清洗,如何对特征进行增删,如何使用PCA降维技术等。
Datawhale
2020/04/15
1.2K0
「特征工程」之零基础入门数据挖掘
《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结
在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。这些工作会占到分析师时间的80%或更多。有时,存储在文件和数据库中的数据的格式不适合某个特定的任务。许多研究者都选择使用通用编程语言(如Python、Perl、R或Java)或UNIX文本处理工具(如sed或awk)对数据格式进行专门处理。幸运的是,pandas和内置的Python标准库提供了一组高级的、灵活的、快速的工具,可以让你轻松地将数据规变为想要的格式。 如果你发现了一种本书或pandas库中没有的数据操作方式,请尽管
SeanCheney
2018/04/24
5.4K0
《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结
数据清洗之 数据离散化
数据离散化 数据离散化就是分箱 一把你常用分箱方法是等频分箱或者等宽分箱 一般使用pd.cut或者pd.qcut函数 pandas.cut(x, bins, right=True, labels) x: 数据 bins: 离散化的数目,或者切分的区间 labels: 离散化后各个类别的标签 right: 是否包含区间右边的值 import pandas as pd import numpy as np import os os.getcwd() 'D:\\Jupyter\\notebook\\Python数
ruochen
2021/05/14
1.9K0
数据清洗之 数据离散化
归一化与离散化
算法:归一化和离散化是前者将逐个样本缩放成单位范数,后者分割连续变量为若干个离散值。
裴来凡
2022/05/29
2850
归一化与离散化
特征工程之数据规范化
Max-abs (极大值标准化),标准化之后的每一维特征最大要素为1,其余要素均小于1,理论公式如下:
用户3577892
2020/06/12
2.1K0
3种连续变量分箱方法的代码分享
大家好呀!在上一篇我们介绍了3种业界常用的自动最优分箱方法。 1)基于CART算法的连续变量最优分箱 2)基于卡方检验的连续变量最优分箱 3)基于最优KS的连续变量最优分箱 今天这篇文章就来分享一下这3种方法的Python实现。
Sam Gor
2022/02/25
1.5K0
3种连续变量分箱方法的代码分享
初学者使用Pandas的特征工程
Pandas是用于Python编程语言的开源高级数据分析和处理库。使用pandas,可以轻松加载,准备,操作和分析数据。它是用于数据分析操作的最优选和广泛使用的库之一。
磐创AI
2021/04/21
5.1K0
初学者使用Pandas的特征工程
3种特征分箱方法
一般在建立分类模型时,当我们进行特征工程的工作经常需要对连续型变量进行离散化的处理,也就是将连续型字段转成离散型字段。
皮大大
2023/08/25
6220
【说站】python数据变换如何实现
以上就是python数据变换的实现,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
6300
【说站】python数据变换如何实现
推荐阅读
相关推荐
【说站】python数据离散化是什么
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验