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

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

[复制链接]
0 g$ {! D2 `) M2 a
G" b) S" i- r; W

铁甲将军夜渡关

& S& I; ]3 t }1 y

朝臣带漏五更寒

3 X/ |1 Y& s& i/ {" b

山寺日高僧未起

[9 E* E- D2 ]4 S" W. b- Q( L

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

& @/ q+ u6 g4 t5 Y. t

一周没有更新了【吃瓜】

. J% B5 ^3 v9 X i( ?

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

# s. _$ ^3 U. r% J# C$ h9 w+ C

* G! ^) b3 U) T

都忙

" g7 K0 B+ T1 \7 P z

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

+ V9 `- F: P# G* q$ n
2 l& L) m& b" L0 s o& U9 r+ ?6 z9 c7 Q

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

0 q- \) p. H. J' L( ]; v

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

$ W2 W# V( t# Y+ h2 D! }6 Z+ i

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

l7 E: V% y6 O8 I

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

" m% e! J/ c* @" a

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

3 ~! ^* b; k0 Y- n. H- Q: `% p6 V/ L

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

. d3 o3 N y' j7 @4 H/ m

数据预处理(无量纲化

E1 n3 M. Q3 M1 L0 m" q( `& ?- ~

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

, \! E3 B' O) A7 o/ o. o+ y/ V

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

/ v4 ]4 Q# {5 ?3 A

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

9 c1 y/ _4 j" f2 Y9 u

这会放大温度的影响效果

g& {, C/ @* U1 S; F$ G

数据归一化

/ @! X! U0 j! a( H. {0 B/ k- B

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

! p0 d% o7 ^6 J& t+ h. w

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

8 u2 C- _' o# H1 S2 } Y

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

5 Q F- m) k& s9 X" ~7 u! W4 v
from sklearn.preprocessing import MinMaxScaler / r7 v! L q! l5 I. J, B2 h4 p2 ^3 g " K/ V. d2 t8 X& h+ M def mm(): - P4 n+ ?8 Y0 i1 G/ A """9 X+ g2 Z3 X, x! v/ e& Q 归一化处理' {' u9 q l9 F: b """ ! `# `) _( P' ^: S9 E B # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 K& \! b A# k9 w5 f7 q mm = MinMaxScaler(feature_range=(2, 3))/ j2 \6 Z- [: N9 g$ V ) }4 u% o* U4 p3 n! R: M. Q" ^$ q j- v data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])8 [# G6 h/ l/ C& B2 S h $ x# @" f H! R8 V& S# t" ~% \ print(data): }0 `! Z) b5 v 2 R. x' @ }" h% Z/ B return None0 A7 w( C; }, Y7 X+ S' u ' w9 K4 r, C& k. x if __name__ == "__main__": x* K/ p. ~4 x8 Z5 Q& N+ y( X# Y mm()( L5 @; e8 \; J% U8 L. c8 Y2 F. \
( n! m, @ C- l' [

数据标准化

: ~9 f( I0 j3 q9 M2 B( O

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

8 N# ?2 @! a# D5 O/ [4 T" B
from sklearn.preprocessing import StandardScaler , A' R9 C6 L) p$ D+ V8 ~! A* y3 H7 B # x = x-mean/γ mean:平均值 γ:标准差 ) j; x7 A: p. q+ P # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号' [3 l/ U) \- L; H& |; U4 M2 n9 Y # 优点,不易受异常数据印象. ]" Y* s) T' Q5 c v: _! c% S 1 \( N" S) y5 c9 m" g. y3 h # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响- r% u, E, b/ j# }3 b def stand(): # {: k# R# I+ ?) c5 W4 c8 I """5 M5 v$ a! Z- x: s3 Q( | 标准化缩放* h! j$ J k; m: F b' V2 d """0 e# H& o6 G+ L8 F0 X0 L- x! \ std = StandardScaler() - ?. r7 E, v& H c" R- x; n( ~1 g/ O" d. u pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]" M, H; p9 A- P3 E6 o; p " p) U) ~ r6 Y4 q data = std.fit_transform(pre_data)6 g- s5 k( V! J; D) } print((1000-2000))' K+ `* f: F/ @; u print(pre_data) 7 u; c( z4 k0 d8 B print(data) $ Y7 d2 ^0 q5 E, ? Q8 k/ m/ U* W ' ?; j# P, i9 U, R/ L return None( K( [8 s) J3 F# R/ | ! H9 o' E4 r: I if __name__ == "__main__": 8 K" |1 E T$ d3 @ stand() % I- M, s Y$ k6 [) P+ G1 a
3 y0 y# T/ q$ F

下一期讲一讲特征工程

$ j( v4 G( A% q- X0 `" n3 r2 z

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

( P: W. o6 N0 x& V7 y& l) p6 D; m) T( v
# P5 H7 p" c$ G4 G( W5 Z/ T! w$ [ # h, [4 a: K; m5 Z, C & H; |: ~' J7 x3 b8 I' I; q# F& W ; p2 f ]# x9 g! |" U- R! Q' P
回复

举报 使用道具

相关帖子

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