获取有效数据

  • Scikit-learn will not accept categorical features by default

    API里面不知使用默认的特征变量名,因此需要编码

    这里我还是有疑问?

    对于下载的数据集,一般的特征变量名,在进行分类的时候,机器是不能识别的,需要对特征名进行编码,因为计算机是二进制语言啊?

  • Need to encode categorical features numerically

  • Convert to ‘dummy variables’

    • 0: Observation was NOT that category
    • 1: Observation was that category

Dealing with categorical features in Python

两种方式是一样的

  • scikit-learn: OneHotEncoder()
  • pandas: get_dummies()

pd.get_dummies

  • 离散特征编码
  • 可用来表示分类变量、非数量因素可能产生的影响

    pandas加入虚拟变量的方式

    get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)[source]
  • data   要处理的DataFrame
  • prefix 列名的前缀,在多个列有相同的离散项时候使用
  • prefix_sep 前缀和离散值的分隔符,默认为下划线,默认即可
  • dummy_na 是否把NA值,作为一个离散值进行处理,默认为不处理
  • columns 要处理的列名,如果不指定该列,那么默认处理所有列
  • drop_first 是否从备选项中删除第一个,建模的时候为避免共线性使用

Pandas中的get_dummy()函数是将拥有不同值的变量转换为0/1数值。

举例说明:一群样本的年龄分别为19,32,56,94岁,19岁用1表示,32岁用2表示,56岁用3表示,94岁用4表示。1,2,3,4这些数值的大小本身没有意义,只是用来区分年龄。因此在实际问题中,需要将1,2,3,4转化为0/1,即如果是19岁,则为0,若不是则为1,以此类推。

  • 举个例子
import pandas as pd
df = pd.DataFrame([
['green' , 'm'],
['red' , 'n'],
['blue' , 'q']]) df.columns = ['color', 'class']
pd.get_dummies(df)

# Create dummy variables: df_region
df_region = pd.get_dummies(df) # Print the columns of df_region
print(df_region.columns) # Drop 'Region_America' from df_region
df_region = pd.get_dummies(df, drop_first=True) # Print the new columns of df_region
print(df_region)

处理缺失数据

Imputer()

  • 填补缺失值:
sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)

主要参数说明:

  • missing_values:缺失值,可以为整数或NaN(缺失值numpy.nan用字符串‘NaN’表示),默认为NaN

  • strategy:替换策略,字符串,默认用均值‘mean’替换

    • 若为mean时,用特征列的均值替换
    • 若为median时,用特征列的中位数替换
    • 若为most_frequent时,用特征列的众数替换
  • axis:指定轴数,默认axis=0代表列,axis=1代表行

  • copy:设置为True代表不在原数据集上修改,设置为False时,就地修改,存在如下情况时,即使设置为False时,也不会就地修改

    • X不是浮点值数组
    • X是稀疏且missing_values=0
    • axis=0且X为CRS矩阵
    • axis=1且X为CSC矩阵
  • statistics_属性:axis设置为0时,每个特征的填充值数组,axis=1时,报没有该属性错误

    参考

# Import the Imputer module
from sklearn.preprocessing import Imputer
from sklearn.svm import SVC # Setup the Imputation transformer: imp
imp = Imputer(missing_values='NaN', strategy='most_frequent', axis=0) # Instantiate the SVC classifier: clf
clf = SVC() # Setup the pipeline with the required steps: steps
steps = [('imputation', imp),
('SVM', clf)]

dropna()

直接删除缺失值

pipline

官方文档

连接多个转换器和预测器在一起,形成一个机器学习工作流,这句解释太官方了,因此我没懂

processing data的更多相关文章

  1. PatentTips - Data Plane Packet Processing Tool Chain

    BACKGROUND The present disclosure relates generally to systems and methods for providing a data plan ...

  2. Becoming a Data Scientist – Curriculum via Metromap

    From: http://nirvacana.com/thoughts/becoming-a-data-scientist/ Data Science, Machine Learning, Big D ...

  3. Monitoring and Tuning the Linux Networking Stack: Receiving Data

    http://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/ ...

  4. 基于Processing的数据可视化

    虽然数据可视化领域有很多成熟.界面友好.功能强大的软件产品(例如Tableau.VIDI.NodeXL等),但是借助Processing我们可以基于Java语言框架进行丰富多元的可视化编程,熟悉了Pr ...

  5. Awesome Big Data List

    https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resour ...

  6. IAB303 Data Analytics Assessment Task

    Assessment TaskIAB303 Data Analyticsfor Business InsightSemester I 2019Assessment 2 – Data Analytics ...

  7. Python - 2. Built-in Collection Data Types

    From: http://interactivepython.org/courselib/static/pythonds/Introduction/GettingStartedwithData.htm ...

  8. Stream processing with Apache Flink and Minio

    转自:https://blog.minio.io/stream-processing-with-apache-flink-and-minio-10da85590787 Modern technolog ...

  9. [Windows Azure] Data Management and Business Analytics

    http://www.windowsazure.com/en-us/develop/net/fundamentals/cloud-storage/ Managing and analyzing dat ...

随机推荐

  1. html input元素的所有type属性

    <input /> 属性 type="text" 输入框的类型为文本 type="password" 输入框的类型为密码 type="ra ...

  2. Ant Design Vue Pro 项目实战-项目初始化(一)

    写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...

  3. lwip 2.0.2 snmp mib ipv6

    1.3.6.1.2.1 - SNMP MIB-2 Submitted by Harald.T.Alvestrand at uninett.no from host aun.uninett.no (12 ...

  4. dubbo-admin dubbo-monitor 安装

    dubbo-admin: 因为我们不能直观的看到dubbo和zk上到底有什么服务(提供者),所以我们需要一个可视化工具来方便我们管理每一个服务和每一个节点.dubbo-admin 就是dubbo的管理 ...

  5. ELK(V7)部署与架构分析

    1.ELK的背景介绍与应用场景 在项目应用运行的过程中,往往会产生大量的日志,我们往往需要根据日志来定位分析我们的服务器项目运行情况与BUG产生位置.一般情况下直接在日志文件中tailf. grep. ...

  6. firewall-cmd命令

    firewalld 基本操作 安装firewalld # yum install firewalld firewall-config firewalld启动,停止,开机启动与否,查看状态 # syst ...

  7. Vue开发中的常用技巧(持续更新)

    1. 监听子组件的生命周期例如有父组件Parent和子组件Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,常规写法可能如下: // Parent.vue <Child @m ...

  8. go每日新闻--2020-02-19

    gocn_news_2020-02-19 1.使用 t.Cleanup 做测试收尾 https://ieftimov.com/post/testing-in-go-clean-tests-using- ...

  9. Android中自定义xml文件给Spinner下拉框赋值并获取下拉选中的值

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  10. CDQ分治笔记+例题

    CDQ分治是一种离线分治算法,它基于时间顺序对操作序列进行分治. 看这样一个问题: 在一个三维坐标系中,有若干个点,每个点都有对应的坐标 \((X_i , Y_i , Z_i)\) ,我们要对于每个点 ...