今日锦囊

特征锦囊:怎么找出数据集中有数据倾斜的特征?

今天我们用的是一个新的数据集,也是在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点下“在看”,这是对我的极大鼓励!阿里嘎多!????

特征锦囊:怎么找出数据集中有数据倾斜的特征?相关推荐

  1. 特征锦囊:怎么尽可能地修正数据倾斜的特征?

    今日锦囊 特征锦囊:怎么尽可能地修正数据倾斜的特征? 上一个锦囊,分享了给大家通过skew的方法来找到数据集中有数据倾斜的特征(特征锦囊:怎么找出数据集中有数据倾斜的特征?),那么怎么去修正它呢?正是 ...

  2. Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值)

    Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值) 一.问题介绍 二.方法介绍 1.选中数据 2.按住Ctrl+H键,调出替换窗口 3.输入 " * ",并点击查找 ...

  3. EXCEL----数据处理(一)----找出两列数据(单列无重复)中的重复项并知道不重复部分的来源

    我们在做数据分析时有时候要借助excel来帮助我们处理数据,虽然写代码能判断所有情况,但是掌握一些excel的技能会让我们处理起来更快捷. 这里记录一些常用到的处理技巧,这次记录的是 找出两列数据(单 ...

  4. 如何用matlab找出一组离散数据中的峰值

    如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...

  5. Excel 中如何找出两列数据中不重复的记录

    现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...

  6. 找出两列数据的差集_excel快速查找数据差异项

    近来在网上看到一则查找两列数据差异项的方法,试着做发现07版的excel根本就没有那个功能,而且设置过程也很麻烦,有那个功夫,不如去网上找函数公式解决.今天给大家分享一下用函数组合公式和自定义函数公式 ...

  7. 在excel中如何筛选重复数据_EXCEL里如何快速找出重复的数据?

    [问题] 有网友私信于我"请问一组6个数字.一共450组.EXCEL能不能自动识别出重复3个数字以上组数出来呢?比如第一组1-2-3-4-5-6.第二组7-8-9-10-11-12.第三组1 ...

  8. 【正则表达式测试工具】使用正则表达式快速找出两列数据中不同的行

    例如像下面的这样的一堆海量数据(已省略部分),可能有几千组,在不编程的情况下如何快速找到不同的行?可能excel有办法,但是处理起来应该没我这样方便的. b_start b_end 100790 10 ...

  9. matlab如何找出最小的数据,读取数据并找出全部数据的最大值和最小值

    各位老大,如何将以下txt文件中的数据比较大小,获得全部数据的最大值和最小值,并且知道是那个发射组("Shot Number"),我现在的问题时这些数据如何赋予数组,"S ...

最新文章

  1. 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
  2. 零基础前端笔记(2)html,表格,列表,标签,文本域,表单域
  3. 121.应用层有什么协议,作用是什么?
  4. python语言与c语言相比在分支结构上有什么不同_大工20春 C/C 语言程序设计 在线作业3 - 百度文库...
  5. 有道云笔记到简书的迁移工具
  6. Codeforces Round #548 (Div. 2) A. Even Substrings
  7. Android应用程序启动过程源代码分析(5)
  8. mysql 协议的processInfo命令包及解析
  9. 设置loadrunner中每个mdrv.exe进程中包含的vuser个数
  10. UVA11292 HDU1902 POJ3646 The Dragon of Loowater【贪心】
  11. Mybatis JdbcType与Oracle、MySql数据类型对应列表
  12. 简单的三步教你下载PyCharm汉化插件,让你学习Python事功半倍
  13. 绕过cdn探测真实ip方法大全
  14. 如何做杜邦线、XH线 制作方法
  15. php验证码汉字显示音节,普通话拼音PHP 标调音节 1403个
  16. 【英语阅读】纽约时报 | 全球走向重新开放,生活在“试错”中继续
  17. ajax初始化 ztree v3,zTree_v3
  18. 计算机毕业设计房地产客服管理系统xns程序
  19. 毛泽东思想和中国特色社会主义理论体系概论
  20. 必须要知道的股票基础知识

热门文章

  1. 2017南宁(重温经典)
  2. 数据规整:连接、联合与重塑(数据分析)
  3. 【Shell 脚本速成】01、编程语言与 Shell 脚本介绍
  4. NER任务的精确评估指标P、R、F1
  5. 一分钟读懂广告投放各计费CPM、CPC等(公式推导干货)
  6. 量化交易 实战第一课 策略入门
  7. Chrome Autofill 删除规则
  8. HTML下拉菜单改变颜色,CSS下拉菜单中字体颜色问题
  9. grails 自动生成crud代码和前端页面
  10. Linux下输入子系统上报触摸屏坐标