收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

关于机器学习数据挖掘中的数据预处理问题?

[复制链接]
6 @$ C; j5 w% S: G& h1 t
! c' r; [9 w( m; Y7 l' d; ~, g

铁甲将军夜渡关

3 T* k; h: l0 Y) @( D

朝臣带漏五更寒

0 e( U9 y; @2 m

山寺日高僧未起

1 X% ^( J2 T8 C' O* {: R

看来名利不如闲 啪!(醒木的声音)

- @% D, B0 {4 N: y$ X6 u. j+ d* U

一周没有更新了【吃瓜】

3 Q" ^3 B+ g7 `9 g

因为了小小的科(摸)研(鱼)任务

5 o3 x) x- h+ q2 W" ^4 R6 L

6 k& D, E! v4 f( i

都忙

, @- V t$ K/ g1 j! i

忙点好啊(主要是早上不起床)

& C/ N" L, s% i$ w
. n& I9 b9 Q' s- N+ W N- k) y6 z

我们在进行数据分析时,有一个非常重要的前期操作--数据预处理

8 a M, D [- A2 M4 L4 N

在学习机器学习算法时,为了更好的理解算法的基本思想

6 N1 r+ n( m8 s* K& I3 x

会用到处理过的很干净的数据集

, e0 d$ [. J' i2 ^

而真实的数据中,多种多样的数据类型、输入的错误、数据的质量等等原因

R; J% _1 V/ {1 t- R2 Y

都可能导致无法匹配模型需求

" q0 `" D$ Y( m( \* U

这时候就需要进行数据预处理工作

; e' L' j7 r2 D/ S3 g r: C

数据预处理(无量纲化

5 ^# g( g3 s- ?3 T8 [9 {! h' b

把不同规格的数据转为到统一规格就是无量纲化

, G$ u1 o4 \% L9 t! T

比如我们判断环境参数对浮游植物的影响

$ U d0 W& a5 v" v9 C

22.9°的温度显然比0.044μmol/L的磷浓度有更大取值范围

9 ^- [" L: }& A; k" U( r/ H: J- R

这会放大温度的影响效果

+ X( ` e1 m* ~( ^9 U9 Z" _6 N

数据归一化

9 T' [% I8 [; i

将数据收敛到[0,1]之间该过程就是数据归一化

" u; _1 f6 Q4 A* l1 b4 W5 i

可以使用sklearn中preprocessing.MinMaxScaler来实现这个功能

% U6 v- J- c- F7 L. A, z6 f2 Z

归一化后的数据服从正态分布

" n; x$ q8 `4 E1 D+ H
from sklearn.preprocessing import MinMaxScaler/ R8 w R$ A' i ; X0 _6 E( O8 L def mm():1 s2 E, v- v* w$ A& @. n, z* R """+ k8 `; {) k% c+ F- j9 n# ` 归一化处理 # c) Z Y; y4 e% ^6 _4 U """& e H h4 ?. ?9 d. p( Y8 t # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 , e* f4 N2 c2 c P2 \5 Z$ q+ n mm = MinMaxScaler(feature_range=(2, 3))6 E7 H4 |# i. m1 F 8 r* { l; f h' F. S( I; k data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) ! ^8 d6 Q2 M9 |& W# `' h; Y9 s0 o1 v; m5 j' r( j% s- q print(data) + z6 P4 @1 C8 l 7 U) \; @. P: Y8 }8 U1 }+ s return None) J9 r& P l0 c ) V. G( }* O+ h1 m J" b if __name__ == "__main__": , x2 \9 U, v6 R mm() # u8 Y0 u4 Q# ]+ H3 C: t; o
& M9 H: v9 \9 D5 ]7 t% s; x" v, A. e, ?

数据标准化

) m$ S0 c$ X7 r

标准化后的数据服从均值为0方差为1的正态分布

# P$ r. U# W" S$ Q# C
from sklearn.preprocessing import StandardScaler* O9 R/ t4 {9 S$ d$ T: R1 t * R! R, E2 @- b) J4 Z # x = x-mean/γ mean:平均值 γ:标准差 ; [5 C+ M4 W$ _/ M6 ` # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号4 {9 E- u- D; P% y: N5 B # 优点,不易受异常数据印象 V: S& L& [# W0 t- s f: p9 E; K ) C" r! H! M& {& Q0 N+ K d # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响: ?' Q s4 r! P def stand():# s0 Y! P4 H* e& J, w4 ~ """ " H3 u) i9 F# N3 G! o( p 标准化缩放 ( Q4 [0 Z/ |6 D @! q' ~ """) k% x+ `% O8 Y' l( l# K. n; U std = StandardScaler()* g" v1 f, C( F' I# ^ ; j5 v8 |+ w: Z9 a6 |+ H pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]8 I4 x0 H5 r& ?; K+ R: }5 @ 8 C, {; W5 o. F# J9 p data = std.fit_transform(pre_data)4 M' Y5 c8 I, W9 w/ H print((1000-2000))& p7 ~. v, Z6 P+ b$ O print(pre_data)! w- }$ p0 n$ L4 O6 ]/ c# X print(data) 4 s, M% W5 I, D9 p; Z: N; l3 ~$ y3 L; J0 B+ ~5 h return None3 P/ V7 t! p6 `! \3 f6 E $ Y: K! U' K& N& J( X9 J5 d' m if __name__ == "__main__":- u& e9 s3 j& V8 z5 k( j stand() V; J( k& a8 R
4 [" Q4 g/ ^% `0 K0 C& f6 E

下一期讲一讲特征工程

$ U) ]$ ]6 e- l1 m8 P8 Y j4 t

关注我【生物海洋计算机支线】,获得更多生物海洋学,数据处理,作图等相关知识

. `3 |. i* ?+ \8 e1 X B3 T
- C2 K7 l$ ~: Q; t# ^ 2 t' Y9 k1 v* g& }% B4 O+ F& r 5 I6 l% j3 v; g) r* p3 w& X) S: r- S ! A: U- T& Q0 I' r
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
哈依盟
活跃在2026-4-10
快速回复 返回顶部 返回列表