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

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

[复制链接]
' G8 e% e& m6 \8 F7 O0 }
& E9 T$ U" P- @4 `& \1 D* E

铁甲将军夜渡关

M4 n1 n, G: v& C

朝臣带漏五更寒

8 N- ?9 ]7 ? e7 Z5 C- P

山寺日高僧未起

' d% m5 a0 R3 l; d2 v: `& I$ H/ r; O

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

) A( T3 y* {% _

一周没有更新了【吃瓜】

, v0 ?4 ~! ?, O: S* m( B' m, g! v

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

8 ^( E' ]+ M0 w0 m

, A% T: g+ I x8 K

都忙

. x- h7 R0 l8 u! a; X* h& Y4 @

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

9 e% k; R% R' R) K
2 u8 t4 m, u, W# e5 R* `

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

7 T( s" p3 _" y' _" I

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

9 s2 q T! K1 w @, b

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

; P0 Z! C( k6 q, B4 m' f, b! T

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

" S- A. [% A* U+ _. ^! b5 b

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

* i4 h' }0 v# z: e8 B

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

" g) J* f$ ?+ t. T5 p2 B v

数据预处理(无量纲化

) O9 Y1 r1 B$ j; h3 ?

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

* A7 j: k3 A$ _% C% ^2 Z& K. c% {

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

! x' q& j+ \2 C" T% z

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

5 G$ w3 L3 f* P) d; I8 }5 }5 B" T

这会放大温度的影响效果

9 P9 D, Z& B6 n' k& h

数据归一化

' u. q3 t' V7 N

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

- M; c8 v- H6 j8 T' r5 w8 D

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

8 O, V7 @& e7 M7 h3 I

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

" F* b4 p5 L' B) S8 ~. p& R
from sklearn.preprocessing import MinMaxScaler4 y! h. c/ b. @; O6 Q$ N 6 x- q( Z2 M. x& S7 | def mm(): " F7 j4 p% I. ~ """! b# f+ t3 s# _9 M! ]- g$ L& ` 归一化处理! _) c5 T2 K% s R """ ' e1 |( U1 v. p2 @5 ~ # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1$ [5 q7 F% P* s7 g3 h mm = MinMaxScaler(feature_range=(2, 3)) : D- I% `+ i, u7 o: a , ]. r; h# o, P' K: @) j; F: f5 z& e data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])4 F! Z( I7 H( H . T, k' I- g6 e s( P print(data)8 a9 o4 F1 |7 k; ~0 g- ^ 0 Q4 k6 B |. m$ h) |7 X return None1 V3 e8 G. I8 U+ p m' } ^9 T- p& I if __name__ == "__main__": , u3 X6 U0 i' k+ R( S mm() / Y' ~. N. w u. a6 l
/ d4 |8 Z5 u5 `2 C# o1 ^

数据标准化

8 q$ f! F2 z' Y t

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

+ Q( O+ p7 ^& f- e2 K3 k
from sklearn.preprocessing import StandardScaler% z7 e c4 F& s & Z% z1 K# v8 u& J8 A' }9 } # x = x-mean/γ mean:平均值 γ:标准差8 G" G. h+ [. Y% S7 b. X # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 1 U% B5 r0 ~/ P# k # 优点,不易受异常数据印象 ; u9 V! u% i9 ^1 @$ f' |# C' ]4 m8 {; F/ N; n3 {/ K, j # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 f: f/ y+ I' Z1 N' x) o def stand(): 8 K% s0 O: U- ~. V# p; v """" q( R, l6 N F 标准化缩放 6 g1 n& U6 V; P0 U: a """ ! b% |( W M1 n& V std = StandardScaler()3 N' H; b( w9 [5 \5 w- b; c 9 n4 N0 E2 |" O pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] 3 K' _' g# |; Y8 r 9 u ?7 w" y% _ data = std.fit_transform(pre_data)6 I9 W, X3 l0 B- W. s print((1000-2000))0 c! S# p. Y: W2 |5 L print(pre_data) . `# T1 \4 ]- V% E: ~* q print(data) 3 I% J3 [/ h1 n+ Y; J; H; t8 Y. h# v- o; U4 D return None8 H8 a$ \3 d/ W: H# B# Z 5 l7 i6 j' z" `5 f3 D- t; f if __name__ == "__main__": 4 L7 v& L% \6 p, }9 H' l stand() ! K# u0 h5 h; D9 ?
$ v9 M6 \( Y& Q

下一期讲一讲特征工程

1 g( B# t6 Y4 r! m

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

+ {* i% M# Z) U* \* W: u
1 \( |/ e$ x% K% I6 e- I( `/ v. n$ a+ v , m4 ~" _0 U) q( d; g, M* Q$ _ u* m+ s1 C" {% G% |- k. ` 5 R, O7 q$ e2 H- m) n8 o
回复

举报 使用道具

相关帖子

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