じゅういち:data yu 处理

文章目录

  • 11。1概述
  • 11.2算法笔记精华
    • 11.2.1去除唯一属性
  • 11.2 处理缺失值的三方法
  • 11.3 Python实践
    • 11.3.1二元化
    • 11.3.2独热码
    • 11.3.3 标准化
      • MinMaxScaler
    • 11.3.4 正则化

11。1概述

  • 数据有缺失值、数据有重复值,预处理。

  • 这里给出数据预处理的常用流程

  • 去除唯一属性

  • 处理缺失值;

  • 属性编码

  • 数据标准化、正则化

  • 特征选择;

  • 主成分分析。

  • 主成分介绍过

  • 这里主要介绍前面的几个常用流程

  • 这章特征和属性的意义相同,不加区分

11.2算法笔记精华

11.2.1去除唯一属性

  • 获取的数据集中,经常会遇到唯一属性。
  • 这些属性通常是添加的一些id属性,如存放在数据库中自增的主键。
  • 不刻画样本自身的分布规律,只需要简单地删除这些属性即可。

じゅういち:data yu 处理_第1张图片

11.2 处理缺失值的三方法

  • 缺失值产生的原因多种
  • 数据存储的失败,存储器损坏,机械故障导致某段时间数据未能收集(对于定时数据采集而言)
  • 人为原因: 人主观失误、历史局限或有意隐瞒造成的数据缺失,
    • 市场调査中被访人拒绝透露相关问题的答案,
    • 回答的问题是无效的,
    • 数据输入人员失误漏输了数据

  • 直接使用含有缺失值的特征
  • 删除含有缺失值的特征
  • 缺失值补全。

11.3 Python实践

11.3.1二元化

  • Binarizeri能将数据二元化

在这里插入图片描述

  • 指定了属性國值。低于此阈值的属性转换为0,高于此阈國
    值的属性转换为1。

じゅういち:data yu 处理_第2张图片

  • 为True,则原地修改(节省空间,但是修改了原始数据)。

じゅういち:data yu 处理_第3张图片

from sklearn.preprocessing import Binarizer

X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3,],
[1,1,1,1,1]]
print("before transform:", X)
binarizer=Binarizer(threshold=2.5)
print("after transform:" ,binarizer.transform(X))

PS C:\Users\ZTZ\Desktop\md\分类> & D:/software/Anaconda3/envs/base_tensorflow/python c:/Users/ZTZ/Desktop/untitled0.py
before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform: [[0 0 1 1 1]
 [1 1 1 0 0]
 [1 1 1 1 1]
 [0 0 0 0 0]]

  • 小于2.5的属性的值都转为0:
  • 大于2.5的属性的值都转为1。

11.3.2独热码

じゅういち:data yu 处理_第4张图片

  • 字符串’auto’,或整数,或整数的数组,

じゅういち:data yu 处理_第5张图片

  • 自动从训练数据中推断属性值取值的上界。
  • 指定了所有属性取值的上界。
  • 每个元素依次指定了一个属性取值的上界。

  • 字符串’all’,或下标的数组,或是一个mask
    • 哪些属性要编码独热码。
  • 所有的属性都将编码为独热码。
  • 指定下标的属性将编码为独热码
  • 对应为True的属性将编码为独热码

  • 指定了独热码编码的数值类型,默认为np. float

  • 布尔值,指定结果是否稀疏。

  • 一个字符,数据转换时,遇到了某个集合类型的属性,

  • 但该属性未列入 categorical_features时的情形,可以指定为如下。

  • error’:抛出异常

  • ignore’:忽略。

  • 属性
  • active_ features_:
  • 数组,给出激活特征。
  • 如果原始数据的某个属性的某个取值在转换后数据的第 i i i个属性中激活,则i是数组的元素

じゅういち:data yu 处理_第6张图片

  • feature_ indices_:数组,
  • 原始数据的第个属性对应转换后数
    据的[ feature_ indices_[i], feature_ indices_[i+11之间的属性
  • n_ values_:数组,存放每个属性取值的种类(一般为训练数据中该属性取值的最大值加1,这是因为默认每个属性取值从另开始)。

じゅういち:data yu 处理_第7张图片









from sklearn.preprocessing import OneHotEncoder
X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3],
[1,1,1,1,1]]
print("before transform:",X)
encoder=OneHotEncoder(sparse=False)
encoder.fit(X)
#print("active_features_: ",encoder.active_features_)
#print("feature_indices_: ",encoder.feature_indices_)
#print("n_values_:" ,encoder.n_values_)
print("after transform: ",
encoder.transform([[1, 2,3,4,5]]))

before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform:  [[1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1.]]

这本书下面在放屁

  • 又好像没有放屁

じゅういち:data yu 处理_第8张图片

じゅういち:data yu 处理_第9张图片

11.3.3 标准化

MinMaxScaler

  • min-max标准化,原型

在这里插入图片描述

  • 元组(min,max),预期变换之后属性的取值范围。
  • 为True,则执行原地修改(节省空间,但是修改了原始数据)。

11.3.4 正则化

在这里插入图片描述

  • norm:字符串
    • l1: L1范数正则化
    • l2: L2范数正则化
    • l ∞ l_{\infty} l 用范数正则化
  • copy:为True,则原地修改(节省空间,但修改了原始数据)。

じゅういち:data yu 处理_第10张图片

from sklearn.preprocessing import Normalizer

X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3,],
[1,1,1,1,1]]
print("before transform:", X)
normalizer=Normalizer(norm="l2")
print("after transform:" ,normalizer.transform(X))

PS C:\Users\ZTZ\Desktop\md\分类> & D:/software/Anaconda3/envs/base_tensorflow/python c:/Users/ZTZ/Desktop/untitled0.py
before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform: [[0.13483997 0.26967994 0.40451992 0.53935989 0.67419986]
 [0.67419986 0.53935989 0.40451992 0.26967994 0.13483997]
 [0.4472136  0.4472136  0.4472136  0.4472136  0.4472136 ]
 [0.4472136  0.4472136  0.4472136  0.4472136  0.4472136 ]]
  • 正则化后,每个样本的L2范数为1。

为啥要把每个样本的的几个特征正则化啊

你可能感兴趣的:(py大战)