特征锦囊:怎么找出数据集中有数据倾斜的特征?
今日锦囊
特征锦囊:怎么找出数据集中有数据倾斜的特征?
今天我们用的是一个新的数据集,也是在kaggle上的一个比赛,大家可以先去下载一下:
下载地址:https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
import pandas as pd
import numpy as np
# Plots
import seaborn as sns
import matplotlib.pyplot as plt# 读取数据集
train = pd.read_csv('./data/house-prices-advanced-regression-techniques/train.csv')
train.head()
我们对数据集进行分析,首先我们可以先看看特征的分布情况,看下哪些特征明显就是有数据倾斜的,然后可以找办法解决,因此,第一步就是要有办法找到这些特征。
首先可以通过可视化的方式,画箱体图,然后观察箱体情况,理论知识是:
在箱线图中,箱子的中间有一条线,代表了数据的中位数。箱子的上下底,分别是数据的上四分位数(Q3)和下四分位数(Q1),这意味着箱体包含了50%的数据。因此,箱子的高度在一定程度上反映了数据的波动程度。上下边缘则代表了该组数据的最大值和最小值。有时候箱子外部会有一些点,可以理解为数据中的“异常值”。
而对于数据倾斜的,我们叫做“偏态”,与正态分布相对,指的是非对称分布的偏斜状态。在统计学上,众数和平均数之差可作为分配偏态的指标之一:如平均数大于众数,称为正偏态(或右偏态);相反,则称为负偏态(或左偏态)。
# 丢弃y值
all_features = train.drop(['SalePrice'], axis=1)# 找出所有的数值型变量
numeric_dtypes = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
numeric = []
for i in all_features.columns:if all_features[i].dtype in numeric_dtypes:numeric.append(i)# 对所有的数值型变量绘制箱体图
sns.set_style("white")
f, ax = plt.subplots(figsize=(8, 7))
ax.set_xscale("log")
ax = sns.boxplot(data=all_features[numeric] , orient="h", palette="Set1")
ax.xaxis.grid(False)
ax.set(ylabel="Feature names")
ax.set(xlabel="Numeric values")
ax.set(title="Numeric Distribution of Features")
sns.despine(trim=True, left=True)
可以看出有一些特征,有一些数据会偏离箱体外,因此属于数据倾斜。但是,我们从上面的可视化中虽然看出来了,但是想要选出来还是比较麻烦,所以这里引入一个偏态的概念,相对应的有一个指标skew
,这个就是代表偏态的系数。
Skewness:描述数据分布形态的统计量,其描述的是某总体取值分布的对称性,简单来说就是数据的不对称程度。
偏度是三阶中心距计算出来的。
(1)Skewness = 0 ,分布形态与正态分布偏度相同。
(2)Skewness > 0 ,正偏差数值较大,为正偏或右偏。长尾巴拖在右边,数据右端有较多的极端值。
(3)Skewness < 0 ,负偏差数值较大,为负偏或左偏。长尾巴拖在左边,数据左端有较多的极端值。
(4)数值的绝对值越大,表明数据分布越不对称,偏斜程度大。
那么在Python里可以怎么实现呢?
# 找出明显偏态的数值型变量
skew_features = all_features[numeric].apply(lambda x: skew(x)).sort_values(ascending=False)high_skew = skew_features[skew_features > 0.5]
skew_index = high_skew.indexprint("本数据集中有 {} 个数值型变量的 Skew > 0.5 :".format(high_skew.shape[0]))
skewness = pd.DataFrame({'Skew' :high_skew})
skew_features.head(10)
好了,今天的内容就这样子吧!有什么疑问的可以留言咨询哈。
往 期 锦 囊
特征锦囊:特征无量纲化的常见操作方法
特征锦囊:怎么进行多项式or对数的数据变换?
特征锦囊:常用的统计图在Python里怎么画?
特征锦囊:怎么去除DataFrame里的缺失值?
特征锦囊:怎么把被错误填充的缺失值还原?
特征锦囊:怎么定义一个方法去填充分类变量的空值?
特征锦囊:怎么定义一个方法去填充数值变量的空值?
特征锦囊:怎么把几个图表一起在同一张图上显示?
特征锦囊:怎么把画出堆积图来看占比关系?
特征锦囊:怎么对满足某种条件的变量修改其变量值?
特征锦囊:怎么通过正则提取字符串里的指定内容?
特征锦囊:如何利用字典批量修改变量值?
特征锦囊:如何对类别变量进行独热编码?
特征锦囊:如何把“年龄”字段按照我们的阈值分段?
特征锦囊:如何使用sklearn的多项式来衍生更多的变量?
特征锦囊:如何根据变量相关性画出热力图?
特征锦囊:如何把分布修正为类正态分布?
原创不易,如果觉得这种学习方式有用,希望可以帮忙随手转发or点下“在看”,这是对我的极大鼓励!阿里嘎多!????
特征锦囊:怎么找出数据集中有数据倾斜的特征?相关推荐
- 特征锦囊:怎么尽可能地修正数据倾斜的特征?
今日锦囊 特征锦囊:怎么尽可能地修正数据倾斜的特征? 上一个锦囊,分享了给大家通过skew的方法来找到数据集中有数据倾斜的特征(特征锦囊:怎么找出数据集中有数据倾斜的特征?),那么怎么去修正它呢?正是 ...
- Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值)
Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值) 一.问题介绍 二.方法介绍 1.选中数据 2.按住Ctrl+H键,调出替换窗口 3.输入 " * ",并点击查找 ...
- EXCEL----数据处理(一)----找出两列数据(单列无重复)中的重复项并知道不重复部分的来源
我们在做数据分析时有时候要借助excel来帮助我们处理数据,虽然写代码能判断所有情况,但是掌握一些excel的技能会让我们处理起来更快捷. 这里记录一些常用到的处理技巧,这次记录的是 找出两列数据(单 ...
- 如何用matlab找出一组离散数据中的峰值
如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...
- Excel 中如何找出两列数据中不重复的记录
现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...
- 找出两列数据的差集_excel快速查找数据差异项
近来在网上看到一则查找两列数据差异项的方法,试着做发现07版的excel根本就没有那个功能,而且设置过程也很麻烦,有那个功夫,不如去网上找函数公式解决.今天给大家分享一下用函数组合公式和自定义函数公式 ...
- 在excel中如何筛选重复数据_EXCEL里如何快速找出重复的数据?
[问题] 有网友私信于我"请问一组6个数字.一共450组.EXCEL能不能自动识别出重复3个数字以上组数出来呢?比如第一组1-2-3-4-5-6.第二组7-8-9-10-11-12.第三组1 ...
- 【正则表达式测试工具】使用正则表达式快速找出两列数据中不同的行
例如像下面的这样的一堆海量数据(已省略部分),可能有几千组,在不编程的情况下如何快速找到不同的行?可能excel有办法,但是处理起来应该没我这样方便的. b_start b_end 100790 10 ...
- matlab如何找出最小的数据,读取数据并找出全部数据的最大值和最小值
各位老大,如何将以下txt文件中的数据比较大小,获得全部数据的最大值和最小值,并且知道是那个发射组("Shot Number"),我现在的问题时这些数据如何赋予数组,"S ...
最新文章
- 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
- 零基础前端笔记(2)html,表格,列表,标签,文本域,表单域
- 121.应用层有什么协议,作用是什么?
- python语言与c语言相比在分支结构上有什么不同_大工20春 C/C 语言程序设计 在线作业3 - 百度文库...
- 有道云笔记到简书的迁移工具
- Codeforces Round #548 (Div. 2) A. Even Substrings
- Android应用程序启动过程源代码分析(5)
- mysql 协议的processInfo命令包及解析
- 设置loadrunner中每个mdrv.exe进程中包含的vuser个数
- UVA11292 HDU1902 POJ3646 The Dragon of Loowater【贪心】
- Mybatis JdbcType与Oracle、MySql数据类型对应列表
- 简单的三步教你下载PyCharm汉化插件,让你学习Python事功半倍
- 绕过cdn探测真实ip方法大全
- 如何做杜邦线、XH线 制作方法
- php验证码汉字显示音节,普通话拼音PHP 标调音节 1403个
- 【英语阅读】纽约时报 | 全球走向重新开放,生活在“试错”中继续
- ajax初始化 ztree v3,zTree_v3
- 计算机毕业设计房地产客服管理系统xns程序
- 毛泽东思想和中国特色社会主义理论体系概论
- 必须要知道的股票基础知识