Kaggle Data Challenge 第一天

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. 缺失数据的处理手段

  • 暴力删除。虽然快捷便利,但是会丢失大量有用的数据信息。使用pandas里的.dropna()功能。

    最省事的办法就是把所有带有NaN的数据行都删掉:

    # remove all the rows that contain a missing value
    nfl_data.dropna()
    

    但在这个例子中,所有的行里都或多或少有缺失项,结果就是所有数据都被删 除了。

    退而求其次,尝试删掉所有带有缺失项的列:

    # remove all columns with at least one missing value
    columns_with_na_dropped = nfl_data.dropna(axis=1)
    
    # just how much data did we lose?
    print("Columns in original dataset: %d \n" % nfl_data.shape[1])
    print("Columns with na's dropped: %d" %     columns_with_na_dropped.shape[1])
    

    Columns in original dataset: 102
    Columns with na's dropped: 41

    加入axis = 1以后,可以在列的方向上删掉含NaN的项。结果虽然还剩一部分数据,但是和原本数据比损失惨重。

  • 自动填充。根据上下文,平均值,常见值,推测值等,推断该填入什么数据。

    首先尝试以特定值(0)填充所有空档。这样可能填的太假太硬。

    # replace all NA's with 0
    nfl_data.fillna(0
    

    接下来可以使用后续值填充前面的缺失。填不上的再用0填

    # replace all NA's the value that comes directly after it in the same column, 
    # then replace all the reamining na's with 0
    subset_nfl_data.fillna(method = 'bfill', axis=0).fillna("0")
    

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


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

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


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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容