我爱编程结构化 · 科技

Kaggle Data Challenge 第一天

2018-04-05  本文已影响0人  一森一森
Kaggle_logo.png

Abstract:18年复活节前的五天,kaggle举办了数据预处理的五个挑战。这里做每天学习到的技术要点的回顾。这篇是第一天的内容,主要是有关数据缺失的分析和操作。


1. 导入原始数据,检视一小部分

这里用到的library是pandasnumpy

# modules we'll use
import pandas as pd
import numpy as np

# read in all our data
nfl_data = pd.read_csv("../input/nflplaybyplay2009to2016/NFL Play by Play 2009-2017 (v4).csv")
sf_permits = pd.read_csv("../input/building-permit-applications-data/Building_Permits.csv")

检视5个数据样本

sf_permits.sample(5)

2. 统计缺失数据数量和所占比重

利用pandas的查缺功能

# get the number of missing data points per column
missing_values_count = nfl_data.isnull().sum()

# look at the # of missing points in the first ten columns
missing_values_count[0:10]

计算缺失数据的数量在总数据中的占比

# how many total missing values do we have?
total_cells = np.product(nfl_data.shape)
total_missing = missing_values_count.sum()

# percent of data that is missing
(total_missing/total_cells) * 100

3. 分析为什么这里的数据会缺失

数据缺失的原因有两个:一是这个数据不存在。比如在做人口统计的时候有一问是家里小孩的年龄,如果家庭还没有生育,那这里就只有空着、填NA或者不适用;二是这个数据没有被录入。比如招聘问卷里问对薪资的预期,有些人会选择不填。

对于这两种情况的数据缺失,处理的方法也应该是不一样的。情况二中,由于这些数据缺失的原因是没有被录入,我们可以根据现有的信息来推测缺失数据的值,以便让和它同宗同族的其他数据不至于被连坐删除。而情况一中,对于不存在的数据,应该让它保持为一种缺失的独特状态,标记为0或者“都不是”,这样才能保留真实信息。

4. 缺失数据的处理手段

于是乎,所有的NaN都被替换掉了。


总结:第一天的内容主要讲如何分析和处理原始数据中的缺失项。介绍了如何查看,统计和替换缺失项。内容比较初级,大佬轻拍。

感受:数据预处理在机器学习的程序中占比别我想象的要大。早些在Coursera上deep learning课的时候都是老师给喂好数据,只要编写算法结构就行。等接触了真实数据就会发现很多问题,比如数据缺失,数据格式不对等。数据预处理就是在保留更多信息的前提下将数据转变为机器可以接受的形态,然后才能放心的喂给算法,以保证预测的准确率。


如果这篇文章对你有所帮助,还请帮忙点赞打赏评论分享~谢谢🙏


上一篇 下一篇

猜你喜欢

热点阅读