python数据分析十六:pandas的面元划分和哑变量(get_dummies()、哑变量)

本文介绍了Python数据分析中pandas库的哑变量处理技巧,特别是get_dummies()函数的使用,它能将分类变量转换为二进制形式,便于进行数值分析。
摘要由CSDN通过智能技术生成

数学名词

    离散化和面元划分 :就是分组,进行相应的计算
    
    对于数据进行离散化和面元划分的前提条件是:连续变化的数据
    例如下面是一组人的年龄数据,现在要按照年龄划分为不同年龄的4组(即把数据拆分为4个面元),
    分别为“18到25”、“25到35”、“35到60”及“60以上。为了实现分组,需要使用pandas的cut函数:
    pandas返回的是一个特殊的Categorical对象。你可以将其看作一组表示面元名称的字符串。实际上它含义一个表示不同分类名称的levels数组以
    
    及一个为年龄数据进行标号的labels属性。, 以及各个阶段人的数量统计
    
    哑变量
    也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化,如职业、性别对收入的影响,战争、自然灾害对GDP的影响,
    季节对某些产品(如冷饮)销售的影响等等。
    这种“量化”通常是通过引入“哑变量”来完成的。根据这些因素的属性类型,构造只取“0”或“1”的人工变量,通常称为哑变量,记为D。
    
    举一个例子,假设变量“职业”的取值分别为:工人、农民、学生、企业职员、其他,5种选项,我们可以增加4个哑变量来代替“职业”这个变量,
    分别为D1(1=工人/0=非工人)、D2(1=农民/0=非农民)、D3(1=学生/0=非学生)、D4(1=企业职员/0=非企业职员),
    最后一个选项“其他”的信息已经包含在这4个变量中了,所以不需要再增加一个D5(1=其他/0=非其他)了。
    这个过程就是引入哑变量的过程,其实在结合分析(conjoint analysis)中,就是利用哑变量来分析各个属性的效用值的。
[/code]

​```code
    # -*- coding: utf-8 -*-
    import pandas as pd
    
    from pandas import Series,DataFrame
    
    import numpy as np
    '''
    离散化和面元划分 :就是分组,进行相应的计算
    
    对于数据进行离散化和面元划分的前提条件是:连续变化的数据
    例如下面是一组人的年龄数据,现在要按照年龄划分为不同年龄的4组(即把数据拆分为4个面元),
    分别为“18到25”、“25到35”、“35到60”及“60以上。为了实现分组,需要使用pandas的cut函数:
    pandas返回的是一个特殊的Categorical对象。你可以将其看作一组表示面元名称的字符串。实际上它含义一个表示不同分类名称的levels数组以
    
    及一个为年龄数据进行标号的labels属性。, 以及各个阶段人的数量统计
    
    数据挖掘中有些算法,特别是分类算法,只能在离散型数据上进行分析,然而大部分数据集常常是连续值和离散值并存的。因此,
    为了使这类算法发挥作用,需要对数据集中连续型属性进行离散化操作。
    那么,如何对连续型属性离散化呢?常见的有等宽分箱法,等频分箱法:
    
    等宽分箱法的思想是,将数据均匀划分成n等份,每份的间距相等。
    
    等频分箱法的思想是,将观察点均匀分成n等份,每份的观察点数相同。
    
    在对数据离散化前,需要先处理异常点敏感问题,即我们需要首先设定一个阈值将异常数据移除。有两种思路:
    
    1.设定阈值为90%,将数据从小到大排序,移除全部数据最小的5%和最大的5%数据
    
    2.  设定阈值为90%,将数据从小到大排序,然后对所有数据求和,并计算每个数据占总和的比例,移除占比10%的数据
    
    在这里&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值