预处理

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. C#设计模式 —— 单例模式

    嗯,这是本人的第一篇随笔,就从最简单的单例模式开始,一步一步地记录自己的成长. 单例模式是最常见的设计模式之一,在项目代码中几乎随处可见.这个设计模式的目的就是为了保证实例只能存在一个.单例模式往下还 ...

  2. OO 第三次博客总结

    调研规格化设计 1950年代,第一次分离,主程序和子程序的分离程序结构模型是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过程:分析—设计—编码—测 ...

  3. vue中的slot(插槽)

    vue中的插槽----slot 什么是插槽? 插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. ...

  4. 浅谈JS作用域和闭包

    函数表达式和函数声明 变量/函数声明都会提前 console.log(a) let a =1 那么打印出来的a为 undefined,因为会将a提到前面并赋予默认值undefined 函数声明:函数声 ...

  5. [译文]程序员能力矩阵 Programmer Competency Matrix

    注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识. 计算机科学 Computer Science   2n (Level 0) n2 (Level 1) n (Leve ...

  6. 关于xib控件变成框框An internal error occurred

    前段时间在进行系统适配的时候,由于在两个不同版本的Xcode之间进行了代码运行调试,导致回到老版本继续开发时xib里面所有的控件全部变成了蓝色的框框...真是哔了狗了 报错信息: an interna ...

  7. Dynamics CRM 常用的JS

    常用JS(一) Xrm.Page.context.getUserId():       //获取当前用户id Xrm.Page.context.getUserName():       //获取当前用 ...

  8. oracle相关操作,存储、临时表空间、用户操作、启动过程

    表空间:此空间是用来进行数据存储的(表.function.存储过程等),所以是实际物理存储区域.临时表空间:主要用途是在数据库进行排序运算[如创建索引.order by及group by.distin ...

  9. 树莓派3B+学习笔记:11、查看硬件信息

    1.查看CPU信息 cat /proc/cpuinfo 查看最后三行 如果只想查看最后三行,也可使用这个命令 /proc/cpuinfo lscpu 2.查看树莓派型号 cat /proc/devic ...

  10. hive的分桶

    套话之分桶的定义: 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储.对于 hive 中每一个表.分区都可以进一步进行分桶. 列的哈希值除以桶的个数来决定每条数据划分在哪个桶中.(网上其它定 ...