预处理

1. 删除缺失值

a. 删除行即样本(对于样本如果输出变量存在缺失的则直接删除该行,因为无法用该样本训练)

b. 删除列,即特征(采用这种删除方式,应保证训练集和验证集都应当删除相同的特征)

 cols_with_missing = [col for col in original_data.columns
                                  if original_data[col].isnull().any()]
 redued_original_data = original_data.drop(cols_with_missing, axis=1)
 reduced_test_data = test_data.drop(cols_with_missing, axis=1)

2. 插值

a.直接插值—使用sklearn的Impution类进行插值

 from sklearn.preprocessing import Imputer
 my_imputer = Imputer()
 data_with_imputed_values = my_imputer.fit_transform(original_data)

b.使用sklearn的Impution类进行插值,同时增加额外的列,保存缺失值的信息(新增列为0或者1取值)

 cols_with_missing = (col for col in new_data.columns if new_data[col].isnull().any())
 for col in cols_with_missing:
     new_data[col + '_was_missing'] = new_data[col].isnull()
 my_imputer = Imputer()
5 new_data = my_imputer.fit_transform(new_data)  #注意返回值为数组格式,丢失列标,可通过DataFrame的columns属性进行找回

注意:fit_transform与transform的区别在于fit会先去拟合数据得到参数例如均值,方差,然后将参数用于数据转换,一般先用训练集去fit获取相关参数,然后再用训练集的参数去transform(这里指插值)训练集和测试 集保证,训练集和测试集基与同一参数进行转换

3. 处理分类变量

独热编码One-hot encode,通过将对分类变量的每个属性值映射为0和1对象,生成新的列,如下图所示,如果有十种属性则生成10列只有0和1取值的新列。

通常处理的时候使用DataFrame.nunique方法统计每一类的种类数,如种类数太多(建议不超过:15)的话,不建议进行独热编码

pandas里面有get_dumpies函数可以处理(默认只针对字符串及Object对象进行编码),sklearn里面有OneHotEncoder,只针对数字(好像很少用)

>>> df = pd.DataFrame({ 0 a b 1 1 b a 2 2 a c 3 >>> 0 1 1 0 0 1 1 2 0 1 1 2 3 1 0 0 0 1

s-折交叉验证

数据挖掘学习笔记——kaggle 数据预处理的更多相关文章

  1. R语言学习笔记(数据预处理)

    setwd("d:/r/r-data/")data=read.table("salary.txt",header=T)attach(data)mean(Sala ...

  2. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  3. 使用sklearn进行数据挖掘-房价预测(4)—数据预处理

    在使用机器算法之前,我们先把数据做下预处理,先把特征和标签拆分出来 housing = strat_train_set.drop("median_house_value",axis ...

  4. #学习笔记#JSP数据交互

    #学习笔记#JSP数据交互 数据库的使用方式:   当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在 ...

  5. ArcGIS案例学习笔记_3_2_CAD数据导入建库

    ArcGIS案例学习笔记_3_2_CAD数据导入建库 计划时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性,管理 问题:CAD存在拓扑错误,标注位置偏移 教程:pdf ...

  6. GIS案例学习笔记-CAD数据分层导入现有模板实例教程

    GIS案例学习笔记-CAD数据分层导入现有模板实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 原始数据: CAD数据 目标模板 2. 任务:分5个图层 ...

  7. ArcGIS案例学习笔记-CAD数据自动拓扑检查

    ArcGIS案例学习笔记-CAD数据自动拓扑检查 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:针对CAD数据,自动进行拓扑检查 优点:类别:地理建模项目实例 ...

  8. Windows phone 8 学习笔记(2) 数据文件操作(转)

    Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方.本节主要讲解它们的用法以及相关限制性.另外包括本地数据库的使用方式 ...

  9. 数据挖掘学习笔记--AdaBoost算法(一)

    声明: 这篇笔记是自己对AdaBoost原理的一些理解,如果有错,还望指正,俯谢- 背景: AdaBoost算法,这个算法思路简单,但是论文真是各种晦涩啊-,以下是自己看了A Short Introd ...

随机推荐

  1. webstorm 常用的快捷键

    1. ctrl + shift + n: 打开工程中的文件,目的是打开当前工程下任意目录的文件.2. ctrl + j: 输出模板3. ctrl + b: 跳到变量申明处4. ctrl + alt + ...

  2. activemq的高级特性:消息持久订阅

    activemq的高级特性之消息持久订阅 如果采用topic模式发送的时候,mq关闭了或消费者关闭了.在启动的时候,就会收不到mq发送的消息,所以就会出现消息持久订阅. 消息持久订阅:第一:消息要持久 ...

  3. solr 服务器搭建(Linux版)

    1.下载访问linux工具  securcrt   链接:https://pan.baidu.com/s/1zTwzmnzUmnwbKUCNHCLN1g 密码:kpyg 2.下载所需的 jdk  so ...

  4. thinkPHP写txt日志文件

     file_put_contents(DATA_PATH.'文件名.txt', '收到请求:' . date('Y-m-d H:i:s') . PHP_EOL . '通知信息:' . $显示的变量名. ...

  5. 【原创】frozenset集合函数入门及实例

    函数作用 frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素.与之对应的是set函数,set无序排序且不重复,是可变的,有add(),remove()等方法. 函数原型 f ...

  6. python教程(三)·自定义函数

    前面介绍了如何使用函数,这一节我们就来学习怎么创建自己的函数! 自定义函数 创建函数非常简单,它使用关键字 "def",下面的代码创建了一个带有一个参数的函数,并使用不同的参数调用 ...

  7. PHP-学习笔记-进阶

    PHP-学习笔记-进阶 PHP类和对象之定义类的方法 访问控制的关键字代表的意义为: public:公开的 protected:受保护的 private:私有的 我们可以这样定义方法: class C ...

  8. 2016-2017-2 《Java程序设计》第1周学习问题汇总

    201552-53 <Java程序设计>第一周问题汇总 关于软件安装以及配置中出现的问题,附上教程及讨论组网址: JDK/intelljIDEA安装及配置: http://www.cnbl ...

  9. # 20155224 2016-2017-2《Java程序设计》课程总结

    20155224 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我所期望的师生关系 预备作业2:我的技能与C语言学习 预备作业3:Linux的初步学习, ...

  10. 20155231 2016-2017-2 《Java程序设计》第3周学习总结

    20155231 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 学习目标 区分基本类型与类类型 理解对象的生成与引用的关系 掌握String类和数组 理解封 ...