【数据分析师-数据分析项⽬案例】⼤数据预处理 ⼤数据预处理 ⼿动反爬⾍,禁⽌转载: https://blog.csdn.net/lys_828/article/details/119902718(CSDN博主:Be_melting) 知识梳理不易,请尊重劳动成果,⽂章仅发布在CSDN⽹站上,在其他⽹站看到该博⽂均属于未经作者授权的恶意爬取信息 0 前⾔ 在进⾏数据分析项⽬案例之前,需要了解数据的情况,有时候拿到的数据并不是想象中的完美数据,那么就需要进⾏预处理后才能使⽤。为 了系统的缕清预处理的⼀般的步骤,这⾥进⾏详细的梳理,采⽤sklearn⼯具包和⼿写代码验证的⽅式进⾏。 1 数据标准化 1.1 标准化定义 标准化的定义:⼜被称为均值移除(mean removal),对不同样本的同⼀特征值进⾏处理,最终均值为0,标准差为1,采⽤此种⽅式我们只 需要使⽤如下公式即可。 数据均值 数据标准差 1.2 为什么要进⾏数据标准化? 在机器学习中,很多的算法和评估模型的好坏的⽅法都是基于距离(残差)的处理,也就是 或者是 ,因此在进⾏数据随 机采样的时候应该避免不同距离对模型影响,故需要进⾏标准化处理,保准随机取的数据是等距离的。说⼈话,借⽤图像举例,就是要把不 同的椭圆,最后处理成为正圆,这样在圆上取任意值到原点的距离都相等。 1.3 实例操作 x = scaled sd x mean z = σ X μ mean : sd : (x i x)2 (y i y)2 import numpy as np from sklearn import preprocessing data = np.array([[3, -1.5, 2, -5.4], [0, 4, -0.3, 2.1], [1, 3.3, -1.9, -4.3]]) data 输出结果为:(数据随机设定的,⽅便后⾯进⾏⼿动验证) 按照标准化的公式,要先计算均值和⽅差,那么有个问题就来了:计算的数据是横向(⼀⾏数据,axis = 1),还是纵向(⼀列数据,axis = 0)的呢?每⼀列(纵向)都代表着⼀个字段的数据,⽽每⼀⾏却包含了所有字段中的⼀个数据,⽽在计算均值和⽅差时候应该选取的是 某个字段进⾏,也就是需要计算纵向的数据 print('均值: ',data.mean(axis = 0)) print('标准差: ', data.std(axis = 0)) 输出结果为: 接下来就可以进⾏⼿动验证 import math math.sqrt(((3-1.33333333)**2+(0-1.33333333)**2+(1-1.33333333)**2)/3) 输出结果为:1.247219128924647(这⾥只进⾏第⼀列的标准差的验证,其余列也是⼀样的,均值可以⼝算) 最终标准化后的结果为:(以第⼀列第⼀⾏的数据进⾏展⽰) 以上的过程虽然原理很简单,操作起来也不是很难,但是要是每次进⾏数据处理之前都得⼀个数据⼀个数据的挨个处理,就显着很浪费时 间,因此就可以使⽤ preprocessing 函数进⾏处理 核⼼代码: preprocessing.scale() data_standarized = preprocessing.scale(data) print('均值: ',data_standarized.mean(axis = 0)) print('标准差: ', data_standarized.std(axis = 0)) data_standarized 输出的结果为:(⼀⾏代码搞定标准化。由于python计算精度的问题,均值这⾥实际上是为0的,10的负17次⽅,相当于很微⼩的数值 了) 2 数据缩放化 2.1 0-1缩放 对不同样本的同⼀特征值,减去其最⼩值,除以(最⼤值-最⼩值), 最终原最⼤值为1,原最⼩值为0,这样在数据分析时可以有效的消除不 同单位⼤⼩对最终结构的权重影响。(例如股票类信息,如果股价是5-7元之间浮动,但是每天成交量在100万上下,在不采⽤缩放的模式 下,成交量的数据权重会⽐股价⾼上⼏万倍,导致最终预测数据出现畸形) 2.2 实例操作 如果直接使⽤numpy进⾏操作,依据计算的公式求解如下 除了⼿动计算外,也可以直接调⽤sklearn中的模块,也是在 preprocessing 函数中,使⽤ MinMaxScaler ⽅法 核⼼代码: preprocessing.MinMaxScaler() data_scaler = preprocessing.MinMaxScaler(feature_range = (0,2)) data_scaled = data_scaler.fit_transform(data) data_scaled 输出结果
- 粉丝: 167
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
- 基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上