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

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

[复制链接]
4 U( d/ E: F# ^: c' G* r
/ \" e+ z/ r0 G% v- {9 Z: t

铁甲将军夜渡关

) ]3 z, N1 ^" f" y7 O

朝臣带漏五更寒

" O9 J, Y' O1 x

山寺日高僧未起

) E; l+ y) L1 s

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

2 }6 }' `/ n! [" I! J5 f9 c: T

一周没有更新了【吃瓜】

( F) |1 N, n2 q

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

& `- D+ ]" @# v& G' U8 _

# U* I; t7 t; P0 V8 K- O) g

都忙

( g! x5 W, C0 f" y) ~: w

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

1 V% c4 F. k& ~/ V1 \9 Q
) {7 i' t! V) _1 ?- ~3 k

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

, N# t. J! x3 @

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

3 Y5 B; n/ ]$ T. ^

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

( a+ A. u! g9 d

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

' [( @- Y3 S& N7 J6 O* Q9 Z6 o

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

$ O2 z& O/ B: U' P/ o

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

* B" f* s+ p0 B7 W3 J x" H' Y$ M

数据预处理(无量纲化

+ X- q5 {5 Z6 i

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

2 L d9 {- A. M8 ~# W/ K- z

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

& E9 d7 O; ~$ V9 E Q1 G

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

; {9 T( U4 T, ~; ?% g; u

这会放大温度的影响效果

+ I% y! c+ v5 B: Z. ^+ k

数据归一化

+ @1 h. b! \6 r9 B4 B7 E0 ^

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

1 c! Z! `3 Y) d) c9 Y7 m. w& ]- n

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

# A/ X" h0 H% A) ~/ l, _" M

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

0 Y: O. }0 h- Z" V
from sklearn.preprocessing import MinMaxScaler0 {, Y0 J8 m) y* O% B 5 F" B2 T$ H6 g# x/ p' H- J def mm(): 7 T! M/ c2 ?5 E """ 6 U6 S% c/ _9 {' A4 q$ H% d 归一化处理8 W3 k# ~. `1 {! b, @2 _, Q* \ """* R8 N8 x! A2 {9 ]- u3 F/ H # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,17 [7 w4 i5 ?8 } n* e [# [- C mm = MinMaxScaler(feature_range=(2, 3))" c# @6 [) a% F8 F) D1 x. ~ 7 ^5 N7 O) ~ m8 v9 ?; S data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 8 z; ~: l8 _- S( Y$ w, B' V. P1 I 5 \0 ]2 i4 _# o0 l! `! l8 a print(data)3 s2 b8 I* I# O% Q& F' J6 Z. m 7 H* u8 Y5 |* h) t( x6 _) M) X5 u return None 6 y) a5 U/ a) e/ X" b' [* Y$ H$ s4 v5 V if __name__ == "__main__":! k1 ^: C2 p O! {0 X7 o% Q mm() : B2 L; l' @. T) X. ~( p, _
3 @6 U& @+ L1 j3 k

数据标准化

, D) I% R) _5 S

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

1 f7 k/ F2 Q* M5 M8 B/ x1 w# v
from sklearn.preprocessing import StandardScaler$ ~6 C R' G" t* w0 L" x3 J 2 e1 b: x8 C" a+ ~ # x = x-mean/γ mean:平均值 γ:标准差! e6 e0 }3 Q* B2 `5 J& k3 v # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 ( g( I5 k8 Z8 S6 ~0 O # 优点,不易受异常数据印象 # c; K e/ @ a" w- j5 P + L: K+ b, \1 D" I, C& u # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响, c! Q( H( ]1 R! p$ K% k def stand():! |) K, v: S: L/ }& u """ 9 d- j& o8 b7 A( U8 L 标准化缩放 % ~) f% y0 D; w """ # t- O4 T& j4 q9 C1 k( B* F% p std = StandardScaler() 9 r0 H3 r2 Z: O. H . u9 V/ ]0 M- x* L! }* A pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] & L5 m; T& \; n* j8 B* p: {% Y 1 V' V4 x- d$ Y9 L$ w data = std.fit_transform(pre_data) P* S. c/ _ B" e0 m9 u print((1000-2000)) ; O1 u% _& P5 \! i6 m9 P6 o8 k print(pre_data) 0 `* O" ~4 M3 Y6 @/ d* Q print(data) 1 a! N: i8 {5 H; X M* u + F/ b1 \% w- @, W. q( C5 `+ R return None. H2 Y& d0 z, X + Q1 ]* i, L* \2 f a2 K if __name__ == "__main__":. J8 q9 T. e7 E( A5 Z1 A3 e9 K; ? stand() & P8 l3 ?5 F9 ]' O+ q# ?
: V/ j% n4 @' \& _1 {! J% b

下一期讲一讲特征工程

2 I! m) j/ C* U* s5 N, W7 l

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

' S' @( |( ` K K( N( b# O( d
$ B% @: i6 ` A& `# p2 }, _7 z1 S2 _1 B ; `: h9 Y9 K$ y* c# m - i$ N) G( o& U 8 }" S" `/ K& f8 b1 e% o6 i
回复

举报 使用道具

相关帖子

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