前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据清洗 Chapter05 | 数据分组与数据不平衡

数据清洗 Chapter05 | 数据分组与数据不平衡

作者头像
不温卜火
发布2020-10-28 17:17:59
1.2K0
发布2020-10-28 17:17:59
举报
文章被收录于专栏:不温卜火

一、数据分组

数据分组时数据分析过程中的一个重要环节 eg: 对大学生成绩数据求平均,查看大学生的平均水平 对不同专业的学生进行分组,分别计算不同专业学生成绩的平均值

使用Pandas库中的groupby()函数,对数据进行分组

1、groupby

  • 1、根据sex进行分组,计算tip列的平均值
代码语言:javascript
复制
import pandas as pd
import seaborn as sns
tips = pd.read_csv('./data/tips.csv')

df = tips
grouped = df['tip'].groupby(df['sex'])
grouped.mean()
1
1
  • 2、根据sex和time同时进行分组,计算tip列的平均值
代码语言:javascript
复制
means = df['tip'].groupby([df['sex'],df['time']]).mean()
2
2
  • 3、使用means.unstack()整理输出结果

转换成表格的模式

3
3

2、agg()函数

agg()函数可对分组数据应用多个函数计算

  • 1、自定义peak_to_peak函数,计算最大值与最小值的差
代码语言:javascript
复制
def peak_to_peak(arr):
    return arr.max() - arr.min()
  • 2、使用agg()计算分组数据的均值、标准查和最值差
代码语言:javascript
复制
grouped.agg(['mean','std', peak_to_peak])
4
4

二、数据不平衡

考虑数据集不均衡,关注数据集的类别所属问题

  • 对于分类问题,在本身观测记录X的基础上,数据集还会添加一列字段数据y,表示观测记录的类别,那么该标注数据集表示为(x,y)
  • 非标注数据集适用于聚类问题,通过学习算法,来获取事先未知的类别信息

1、真实场景下的不均衡

  • 1、分类问题再实际场景中应用广泛

金融领域的欺诈检测

医疗行业的疾病诊断

电信行业的用户流失预测

5
5

2、以二分问题为例

理想状态下,标注数据集中属于不同类别的观测记录比例应大致相同 现实情况下,分数两类的数据量差别比较大,这种现象非常普遍 传统的学习算法如决策树,SVM等无法很好地处理不均衡地数据集,给算法的性能带来负面影响

  • 下面为解决方法:
  • 1、扩大样本容量

数量不均衡的原因多种多样,可能是抽样算法,也可能数据的真实分布就是如此 如果是前者,可以改变抽样方法,扩大现有的数据样本,消除数据集类别的失衡

  • 2、欠采样

从多数的负类样本中,随机选择与正类样本数量相当的数据样本,组成新的数据集,这种方法称为欠采样

6
6

正类样本数量过少,欠采样会直接导致样本容量大幅度减少,损失过多的有效信息

  • 3、过采样

与欠采样不同,过采样随机从少量的正类样本中重采样,来扩充样本正类的数量,

7
7

过采样可以让样本数量增加,消除不均衡,但会导致严重的过度拟合

  • 4、集成学习

欠采样为了平衡数据,丢弃样本所携带的部分信息 通过集成的方式解决了欠采样方法所带来的弊端

集成学习的过程:

  • 有放回抽样负类样本,容量和正类样本相当,连续进行K次
  • 与原有的正类样本数据合并,总共得到K个新数据集
  • 针对每个新数据集,使用基本分类器进行分类
  • 综合K个基分类器的结果,来确定数据的最终类别
  • 5、阈值移动

再Logistic回归分类问题中,针对每一个要分类的数据记录,使用Simgod函数作为激励函数,输出一个对应的数值y,作为判定类别的概率

在阈值移动方法中,预先设定阈值a 如果y > a ,数据归属类A 反之,数据归属类B

为解决数据不均衡,可以改变阈值来调节数据集中类别的比例,适当增加少数类样本的数量

  • 6、人工合成样本

SMOTE算法通过合成全新的正类样本,来补充原有的数据集 x为一个正类样本,通过聚类找到它的K近邻,选择离x最近的正类样本点q 构成x和q构造新的样本,计算公式如下:

8
8

三、不均衡数据下的模型的评价标准

对于类别取值分布均衡的数据集,评价算法的常用评价标准是准确率 在不均衡的数据集上使用准确率,难以反应分类算法的真实性能 归属负类的样本过多,会导致算法在负类样本的正确率很高,而在正类样本的分类效果很差

  • 1、引入评价标准F-score
9
9
10
10

  本次的分享就到这里了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数据分组
    • 1、groupby
      • 2、agg()函数
      • 二、数据不平衡
        • 1、真实场景下的不均衡
          • 2、以二分问题为例
          • 三、不均衡数据下的模型的评价标准
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档