特征工程(3)特征增强:数据清洗——缺失值识别

代码及数据集

链接:https://pan.baidu.com/s/1tEz3gkTfmZjD-0JaC-nhVQ 密码:l16a
数据清洗知识脉络
缺失值处理
归一化

缺失值识别

数据集说明

  • 数据集:皮马印第安人糖尿病预测数据集
  • 数据来源:https://www.kaggle.com/uciml/pima-indians-diabetes-database
    • 数据9列,768行
    • 该数据希望通过体检结果细节,预测21岁以上的女性5年内会否会换上糖尿病

数据含义

  • 怀孕次数
  • 口服葡萄糖耐量试验中的2小时血浆葡萄糖浓度
  • 舒张压(mmHg)
  • 三头肌皮褶厚度(mm)
  • 体重指数[BMI]
  • 2小时血清胰岛素浓度(uU/ml)
  • 糖尿病家族函数
  • 年龄
  • 类变量(0/1,代表是否患有糖尿病)

在这里插入图片描述

进行探索性数据分析(EDA)来识别缺失值

pima = pd.read_csv('data/pima.data')
pima.head()

在这里插入图片描述

  • 由于数据集没有列名所以通过数据集说明手动将其加上
pima_colunmn_names = ['Pregnanci', 'Glucose', 'BloodPressure', 'SkinTickness', 'Insulin', 
                      'BMI', 'DiabetesPedigreeFunction', 'Age', 'Outcome']
pima = pd.read_csv('data/pima.data', names=pima_colunmn_names)
pima.head()

在这里插入图片描述

计算空准确率

  • 空准确率:使用样本比例最多的类别进行预测时的准确率。
pima['Outcome'].value_counts(normalize=True)

在这里插入图片描述

  • 可以看出当前空准确率为65%左右

用列名做一个基本的统计、选择和可视化操作

  • 对糖尿病人和健康人区别进行可视化
  • 希望直方图可以显示出一些规律
  • 或者这两类之间的显著差异
for col in ['BMI', 'BloodPressure', 'Glucose']:
    plt.hist(pima[pima['Outcome']==0][col], 10, alpha=0.5, label='non-diabetes')
    plt.hist(pima[pima['Outcome']==1][col], 10, alpha=0.5, label='diabetes')
    plt.legend(loc='uper right')
    plt.xlabel(col)
    plt.ylabel('Frequency')
    plt.title('Histogram of {}'.format(col))
    plt.show()

在这里插入图片描述

  • 通过这几张图可以看出患者与正常人的体征有着显著的不同
  • 例如血浆葡萄糖浓度会有很大的增长
  • 血压和BMI也比正常人低

使用线性相关矩阵来量化变量间的关系

# 数据集相关矩阵的热力图
plt.figure(figsize=(16,8))
sns.heatmap(pima.corr(), annot=True, cmap= 'PuBuGn')
plt.title('Variable relationship')
plt.show()

在这里插入图片描述
在这里插入图片描述

  • 可以看出Glucose和Outcome是一个强相关的关系
EDA分析提示Glucose是预测糖尿病的重要变量

查看缺失值

在这里插入图片描述

  • 目前来看并没有缺失值
  • 在通过describe查看下
    在这里插入图片描述ext_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhbXBiZWxsMDAx,size_16,color_FFFFFF,t_70)
    在这里插入图片描述
    要尽可能的了解数据集,以便找到其他符号填充的缺失数据
    务必阅读数据及说明文档,里面可能会提到缺失数据问题

缺失值的常见填充方法

  • 0(数值型
  • unknown或者Unknown(类别型)
  • ?(类别型)

清洗数据将0替换成None

columns = ['Glucose','BloodPressure','SkinTickness','Insulin','BMI']

for col in columns:
    pima[col].replace([0], [None], inplace=True)

在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值