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

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

[复制链接]
, p, N) O% `" F' F [, d
" |" N7 g* _1 e6 e5 C8 v' C

铁甲将军夜渡关

. z: G5 k! F3 X: w8 L

朝臣带漏五更寒

- p8 R! h! W: a

山寺日高僧未起

- q1 ~' P$ a3 c0 O% _/ Z

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

+ C! A" v, C% \+ X( L4 D$ W

一周没有更新了【吃瓜】

, Z# j6 ]1 J8 [% A% U

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

' H2 R1 ?# P. A' R+ F/ X( A

% N. Q8 k9 h9 I* l: y9 S w2 D- y$ L

都忙

# W8 P7 W' G4 u2 ]

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

7 G- q" f( p5 B2 N: L7 x$ P- I
1 _* D% p2 D! @

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

* w8 q* r5 r3 J. ]

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

# [: w3 _9 W) x; l% ~, I; C; u* t

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

) _; Y% C( {* U" _4 h

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

% [( _" X3 ~; r% f

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

/ M0 M! e, c6 ^: z

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

2 H$ R# H0 u- c% N! T

数据预处理(无量纲化

& F8 n- K7 V. E6 [, q' I- o

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

* y; I& u5 Y x V

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

! m/ f c4 `( J3 Y1 {. \- Z* V" @+ B

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

: E% p, b5 `( U c% e" r' j/ Y+ B

这会放大温度的影响效果

" @- S3 n) q) U) M c, Z5 s& [

数据归一化

5 u& i/ o* n6 N6 W* }

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

, X8 Y1 {! G2 E1 V8 K

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

: @' U& B8 \# a) w: R6 E: f

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

7 f# H/ ?. r5 q) _: O" B
from sklearn.preprocessing import MinMaxScaler I5 ?' k, S* E) L* E. p0 ` 2 @! C' R0 W5 V( x6 a" ~: x' a l def mm(): 8 e0 ?* H4 ]( b3 X6 R, F """ 4 Q6 c$ P4 k0 N/ O 归一化处理 4 e& l1 o- ]5 K! q; a- W! U """) G1 K2 j9 d' ]7 y5 ~ # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 6 {, i z) l+ I mm = MinMaxScaler(feature_range=(2, 3))1 m" v7 T' J! M: V0 m% ^- u6 g & i& @% b4 G9 h: |2 M' x5 j. e$ j data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]); L, C" u: `# G* e o ! ^8 y8 h, L* U2 M" x print(data)4 ~$ m) q/ k& @* E5 c4 j" k* I+ n $ c' Y0 U0 U1 E return None , S! n" j, C; I- r4 f; p* Q ' F- }/ W1 G7 g# a if __name__ == "__main__": 8 V# [& y: X& u0 O4 Q: I mm() : |1 ]5 M) Z6 q- h; m: |
4 U# z+ `5 L Y

数据标准化

) M( B( J0 b" t- x) ~) p

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

$ R- F9 l- t: Y3 n3 X* e8 S
from sklearn.preprocessing import StandardScaler( B/ J1 e K( l6 @8 f% ? : t; d4 |4 t. \5 t: e' ?9 g: }! V # x = x-mean/γ mean:平均值 γ:标准差+ d0 s1 {9 p0 s' r1 m5 l2 U # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号- Y. x# ~6 T, j: M* D # 优点,不易受异常数据印象 ' g7 S2 h$ J+ H4 C. I2 E 8 q0 t" j; z1 i% E# u) }3 z # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 2 |6 u- R. C' l: o; w% {# L0 } def stand():: x9 w1 L9 D1 v0 l2 p """7 n. C9 C% U2 S0 V z% Y: a. s% q 标准化缩放# f/ d; S6 [+ N4 W9 ?; R; [! b """# l! c% o- r8 x std = StandardScaler() & W# G6 g" p' s* v4 \+ J3 N( |6 ?& M2 o; Z/ A. d: {) |6 a4 d pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] / |$ k- S& B: s* e1 Y6 u ! _' p4 G! _3 o: L+ U data = std.fit_transform(pre_data)2 J9 ?+ `4 R8 O& G, w3 A: u print((1000-2000))/ l% a: m& k5 g. S" { print(pre_data)% k, s6 w0 o+ }( J3 R9 Y print(data) , ]- v) Y. g" @: O1 `6 `8 _7 o0 }# w1 b( H; d: c return None - f, S% j" g) H$ T1 e2 A' I# U" z& K. T- x( [3 F; K1 ] if __name__ == "__main__":: p; H" ]: y+ y# G stand()' L/ c3 V) M" q. A' n$ B
k8 g, C+ E9 }7 I1 T, D

下一期讲一讲特征工程

: k0 [7 K9 Q4 M$ B) C) Y y( \% p

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

. q! L8 ]4 q3 }5 A1 u$ t
/ I3 k6 B5 v6 [& _5 }, k0 ~$ e 5 H' M1 B8 g4 D, |. \" p% p ! c2 I% b$ W, G4 ]# J. B- L4 D ( l6 o& J* z) C# e9 \ 3 V( T) r4 M2 F3 ~
回复

举报 使用道具

相关帖子

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