Kaggle 指南(三)—— 数据预处理

数据预预处理对于机器学习结果来说是至关重要,有时甚至是决定性的。本篇我们将讨论针对不同的数据类型,如何根据不同的数据模型来做预处理。具体我们将讨论四种最常见类型的数据,分别是 数字数据,类别数据,时间数据和坐标数据。

数字数据

  1. 标准化(Scaling)

为什么要标准化? 非标准化的数据会造成计算数据之间距离时,在一个数据纬度上的距离被过度放大,可能会极大的影响分类的准确性。 如下图,如果我们采用k-NN计算节点间距离,左右两个x1坐标系的尺度不同直接影响了绿色节点的分类结果。


标准化有四种常规实现方式,对应于Sklearn 以及Numpy中的实现,分别是MinMaxScaler, StandardScaler

MinMaxScaler
转化数据到[0, 1]区间
X = (X-X.min())/(X.max() - X.min())
具体可使用 sklearn.preprocessing.MinMaxScaler

StandardScaler
转化数据到 平均值=0, 方差=1
X = (X-X.min())/X.std()
具体可使用sklearn.preprocessing.StandardScaler

是否所有模型都需要标准化? 答案是否定的,实际上决策树相关模型就不需要进行数值标准化,因为树模型不用考虑节点之间的相互距离。

  1. 离群值(Outlier)与排序

有时一个数据集中可能有几个数据点偏离其他数据点太远,这可能会极大影响分类效果,如下图所示:

这时候我们需要把离群点找出来剔除或单独处理,一种最简单可行的方法是对数据点进行排序,并用排序后的index代替原数值,这种方式把数据节点之间的距离尺度拉平到1个单位。

比如

rank([-100, 0, 1e5]) ==[0,1,2]
rank([1000,1,10]) = [2,0,1] 

sklearn.stats.RankData可以实现上述排序+映射的功能

  1. 取对数或开平方

对于神经网络模型来说,如果数值太靠近0, 可以采取对数或开平方的方式来使数据变得更加可区分,借助于Numpy 比如:
np.log(1 + x)
np.sqrt(1+x)

  1. 创造新的特征值

有时候你不必局限于已有数据的特征,可以创造一些新的特征值来使数据的表达更为丰富,在部分竞赛题目中,新特征值的构建对结果也产生了至关重要的作用

例如房地产数据,假设你已经有房子面积和总价数据,你可以很自然的想到房屋单价这一可能的新特征。有时候新特征可能需要一些统计知识,比如时间序列数据中每个窗口数据,可以添加其均值方差等新特征。总体来说,对于新特征的挖掘能力取决于两方面:一是领域知识的了解程度;二是通过探索性数据分析(EDA)所获得的发现

类别数据

类别数据,又称可枚举数据,是一种广泛存在的数据类型,比如性别,职业,学历等。 序数词是指一个序列中的一部分数据,比如考试名词。这些数据需要转换成数值数据以供模型使用。典型的处理方式有适用于决策树相关模型的LabelEncoding 和FrequencyEncoding , 以及适用于线性及其他非决策树模型的OneHot Encoding

  1. LabelEncoding
    将类别或序数词直接映射为数值数据,具体有两种映射方式,一是按照字母顺序,二是按照出现顺序,比如下面这组数据:[S, C, S, S, S Q]
    按照字母顺序映射结果 为[2, 1, 2, 2, 2, 3] 按照 出现顺序则为[1, 2, 1, 1, 1, 3]
    分别采用的软件包为 sklearn.preprocessing.LabelEncoder 和 Pandas.factorize

  2. Frequency Encoding
    FrequencyEncoding 是指计算每个类别的出现频率,按照上述例子计算 那么我们有P(S) = 4/6 P(C) = 1/6 P(Q)=1/6

  3. One-hot Encoding
    对于非决策树模型来说,One-Hot Encoding 是一个更合适的预处理方法,其具体处理过程如下所示:

One-Hot 将一维特征拓展为N维(N=类别总数), 每行对应的列为1,其他为0。
由于处理后的数值只能为0或1,所以OneHot的过程也同时是数据标准化的过程。
One-Hot一个潜在的缺点是,如果类别数过多会生成一个庞大的稀疏矩阵,使计算效率大打折扣,这个时候可以考虑用其他方式比如广泛用于自然语言处理的Word2Vec。

时间和地理坐标数据

时间和地理坐标数据有一些相似点是,时间和地理坐标本身是一种标尺不是数据,但是我们可以根据时间和地理坐标的特性生成新的数字或者类别特征。
时间数据

时间数据可以从三个方面考虑其新特征:

  1. 周期性
    秒、分、时、星期、月、年。例如病人服药记录,一种药需要三天吃一次,可能就需要3天为一个时间周期来计算相关特征。
  2. 距离某个时间距离
    分析电商销售数据比较常用的是计算比如开店后多少星期,从上一个节假日之后多少天的销售额。
  3. 时间差
    两个时间点之间的数据差也可能成为新的特征值,比如股市每日收盘和开盘之间的价格变化。

地理坐标数据

类似于时间数据,地理坐标数据也可以产生很多有用的特征,假设要预测一个地区的房价信息,在给定了一个城市比如伦敦

我们可以从几个方向去探索:

  1. 聚类中心点
    可以尝试依据房价的经纬度进行聚类分析,分析发现关键性的地标中心,比如伦敦塔、海德公园、大英博物馆等 。
  2. 距离信息
    可计算预测的地点到中心点的距离值
  3. 聚合分析
    在预测点周围比如1英里、3英里 半径范围内房子的类型价格、教育设施、生活设施等统计信息。

Next..

Kaggle 参赛指南(四)—— 探索性分析

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

推荐阅读更多精彩内容