特征工程(2)特征理解

代码及数据集链接
链接:https://pan.baidu.com/s/1tLLIPUmADk48TZpAHy-g1A 密码:bqmz

特征理解的基本工作流程

  • 数据有没有组织?是以表格形式存在还是非结构化文本格式
  • 每列的数据是是定性还是定量的,单元格中的数字代表字符串还是数值
  • 每列处于哪个等级? 定类、定序、定距还是定比
  • 我们可以用什么图表?
    在这里插入图片描述

基础概念

数据结构的不同

  • 结构化数据:
    有组织的数据,可以分成观察值和特征的数据,一般以表格的的形式组织(行是观察值,列是特征)
  • 非结构化数据:
    不遵循标准组织结构(例如表格)的数据。例如文本或者图像

数据类型

  • 定量数据:本质上是数值,应该是衡量某样东西的数量。例如(💰)
  • 定性数据:本质上是类别,描述某样东西的性质。例如(人名,地名)

有时数据可以同时是定性和定量的。例如餐厅评分(1~5🌟)虽然是数,但是也可以表示类别。
- 如果公布出来的平均分是带小数的例如(4.7颗🌟)那么当前数据为定量的
- 如果(1~5🌟)对应的分别是【讨厌、还行、喜欢、喜爱、特别喜爱】那么当前数据为定性的

定性/定量数据区分示例

数据集为旧金山工资数据集

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
plt.style.use('fivethirtyeight')

salary_ranges = pd.read_csv('data/Salary_Ranges_by_Job_Classification.csv',index_col=0)
salary_ranges.head()
  • 先看看前几行数据,已经能够看出一些数据的分类了,例如Biweekly High Rate 是工资的选项 该列应该为定量数据 Job Code应该是一段编码用来区分不同的工作职位,那么该列数据应该是个定性数据
    在这里插入图片描述
  • 通过dataframe.info()查看下数据的行列数,以及数据类型,是否有缺失值,可以看出并没有缺失值。
    在这里插入图片描述
  • 使用describe方法查看一些定量数据的描述性统计
  • describe 默认描述定量列若是没有定量列,也会描述定性列
  • 前文提到过定量数据的定性数据之间具有模糊性,describe默认int,float型为定量列,object为定性列。具体的需要自己单独去细分
    在这里插入图片描述
  • Union Code明显不是定量虽然该列是数字型但是不代表数量,代表某个工会的代码
  • Biweekly High Rate 之前分析过应该是定量数据这里并为展示,是因为$的原因所以之后会进行单独的处理,将这一列处理成定量数据
当前很重要的步骤就是选取我们感兴趣的特征进行单独分析
  • 例如定量列Biweekly High Rate(双周最高工资)和一个定性列Grade(工作种类)这两个特征应该是有一定的内在联系的。
    在这里插入图片描述
  • 为保证数据类型正确,移除工资前的$并改称folat类型
    在这里插入图片描述
  • 1356行
  • 2列自己选取的
  • 双周最高工资:定量列,代表某个部门平均最高工资
  • 工作种类:工资对应的部门,代码代表一个部门所以是定性的

由于定性定量数据之间的模糊性,会进一步将数据细分成四个等级

数据的四个等级

数据定性定量后可以继续分类

  • 定类等级(nominal level)
  • 定序等级(ordinal level)
  • 定距等级(interval level)
  • 定比等级(ratio level)
    每个等级有不同的控制和数学操作等级
    目的:决定了可以执行的可视化类型和操作

定类等级

结构性最弱,该等级只按名称分类,该数据都是定性的

可执行的数学操作
  • 由于定性数据所以不可以执行加减法,平均值等定量数学操作
  • 不过可以使用value_counts()进行计数
  • 通过条形图饼图等可视化手段观察规律

定类等级分析示例

  • 还是旧金山工资数据集
  • 之前讨论过Grade为工作种类 是定类等级通过value_counts()进行计数,并且可视化
  • 可以看出出现最多的种类为00000,以为这这个种类为众数
  • 也可以通过绘制饼图来进行可视化分析
    在这里插入图片描述

定序等级

定序等级继承了定类等级的所有属性,且有重要的附加属性

  • 定序等级的数据可以自然排序
  • 可以认为列中的某些数据比其他数据更好或更大(这样就可以有区分比较)
    • 与定类等级一样定序等级天然数据属性任然是类别
    • 例如考试成绩 ABCD这属于定序等级 可以认为A比B好 但是仍然是类别属性
      即使评分(1~10)也是类别
可执行的数学操作
  • 计数
  • 比较和排序
    • 因为可以进行比较和排序所以可以计算中位数和百分位数
    • 中位数:茎叶图
    • 百分位数:箱线图

定序等级分析示例

  • 数据集说明:
    使用旧金山机场数据集,该数据集表示多少人喜欢旧金山国际机场
    旧金山数据集数据说明

    在这里插入图片描述
    数据的属性非常多,总共95列属性,我们选取其中的Q7A_ART进行分析
    Q7A_ART:关于艺术品和展览的取值为[0~6]
    • 1=Unacceptable
    • 2=Below Average
    • 3=Average
    • 4=Good
    • 5=Outstanding
    • 6=Have Never Used or Visited
    • 0=Blank
  • 这些值虽然是数字可是这些数据是定性的,属于定序等级:
    除去0和6 剩下的1~5 他们是有一个区分比较的 可以认为数字越大越好
    在这里插入图片描述
    可视化

定距等级

定量数据:不仅可以对值进行排序和比较,而且可以加减

可执行的数学操作
  • 算术平均数
  • 标准差

定距等级分析示例

  • 数据说明:平均温度的气候数据集
    • 每行代表某个城市某月的平均温度,上溯至18世纪
      在这里插入图片描述
  • 只看前五行就已经有数据缺失了,所以将这些数据进行删除,之后再来分析会更容易理解。
    在这里插入图片描述
  • 我们关注的是AverageTemperature这一列,该数据为定距等级
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

定比等级

  • 最高等级:拥有最高程度的控制和数学运算能力
  • 定量数据
  • 继承了定距等级的加减运算增加了绝对零点概念可以做乘除运算
绝对零点
  • 由于存在绝对零点 那么一些数据的比较就有了意义
    • 例如:
    • ¥100 时¥50的两倍
  • 无零点或者存在负值时那么这个比较就无意义
    • 例如:温度 因为温度是主观的不是客观存在的 没有真正的零点

定比等级分析示例

  • 使用旧金山工资数据集中的双周最高工资和工作种类两列
    在这里插入图片描述
    在这里插入图片描述

数据等级总结

数据等级总结

等级属性例子描述性统计图标
定类离散二元响应(真或假)频率/占比条形图
无序油漆颜色、人名众数饼图
定序有序类别李科特量表频率/众数条形图
比较考试等级中位数/百分位数茎叶图
定距数字差别有意义摄氏度频率/众数条形图/饼图/茎叶图
某些特殊的李科特量表中位数/均值/标准差箱线图/直方图
定比连续💰均值直方图
存在有意义的绝对零点,可以做除法重量标准差箱线图

统计类型汇总

统计量定类定序定距定比
众数☑️☑️☑️有时可
中位数☑️☑️☑️
差值、最大最小值☑️☑️☑️
均值☑️☑️
标准差☑️☑️

图表绘制汇总

图表定类定序定距定比
条形图/饼图☑️☑️有时可
茎叶图☑️☑️☑️
箱线图☑️☑️
直方图有时可☑️
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值