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

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

[复制链接]
! z$ h+ H l8 g" o! e/ q1 y
; ~* m0 }7 h. X4 \7 K+ o0 y2 D

铁甲将军夜渡关

; q* ^ H4 Z1 C5 k

朝臣带漏五更寒

: [' U% T; U a

山寺日高僧未起

0 ~' Z& z9 I' }7 d. w9 Y& E0 K/ T

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

$ l1 |9 o- s# S1 M

一周没有更新了【吃瓜】

6 }8 @6 j! r E! v

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

% J8 T$ B2 O0 O& ~" m- L5 f

3 L# c: [- j; b. Z/ f/ U3 W

都忙

6 d9 T4 [# W7 {6 ]# b$ M9 ]0 X/ ^

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

( r5 a) ?. i. g; p2 [+ j' g0 }
0 c4 ^) n* t9 k' ^' R! m

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

, m& O: Q" R0 j! c

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

, `: v, F, I# w! N2 Q

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

* U7 v. ~8 r7 ^1 t- Y- h

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

* x5 e, @. `# U) @5 l; m2 ~

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

& W* } E4 L; h# d

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

* f# a; ?( r6 D2 F1 _/ i. Z- v

数据预处理(无量纲化

) k3 i! ?- u9 x K; e

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

9 f4 r3 x; }- l; c! R! E

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

" f2 G: o( k/ R3 j5 l( }0 F. t

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

$ D) R" b2 p- X

这会放大温度的影响效果

, `1 u$ l0 H; e B: ? o) @

数据归一化

/ q; d: u/ {& z# b0 h( |

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

; O2 m. A/ H3 v

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

0 T0 R8 \+ l! M

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

5 w, ~/ O4 c/ [8 Z1 J- Q7 f9 h. [
from sklearn.preprocessing import MinMaxScaler A) D; c) d. O( \6 L& M 7 `0 L; T( T( w$ P v def mm(): 4 H3 t0 h- p" } """ , L! D. P! J0 q% m5 Z3 w 归一化处理/ _' Q# d- m% C: A: S7 } """2 \! q& z% z" ` # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1# j2 p& B4 {5 V; Y0 z8 e1 Q mm = MinMaxScaler(feature_range=(2, 3))0 L/ z( k4 I7 } 8 \* A7 f* P5 V7 v! |/ o data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 3 G5 l" h$ @ }: k + K& |4 C, X7 ^ z) P+ j. F1 J print(data)1 {" P$ b$ y( w! F1 a 4 m$ W+ Q6 ~0 g8 e2 a* O5 P8 _ return None 3 Y6 o4 Q- N0 { & r- g: [6 p6 z& e& G1 d! v) ^ if __name__ == "__main__":/ s8 e& |# f6 @; U4 p mm()' A- |# ?# F8 P" L9 r; E
- N7 D" J7 p. ?: c/ B- |( v

数据标准化

* i& v+ I0 w& j2 O7 i

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

/ D6 c u- G, F( C7 t
from sklearn.preprocessing import StandardScaler0 U. D) z- A; G, S$ e# b0 z" ? 3 v3 x% H$ d, M* ~! }% x" z # x = x-mean/γ mean:平均值 γ:标准差% Y7 a" I# ?. z5 E% y # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 + R& `7 h. ~& i: W # 优点,不易受异常数据印象 : X& Y+ Z3 o. B3 z7 r2 W % c. t7 F" P! y # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响8 L3 X5 @) x. d; Y. c; B/ i def stand():( M2 |' Y# f# o1 I4 S3 \ """1 k1 W* Y0 f& @2 @- E 标准化缩放% H6 M3 h$ |" S6 S1 U% z' }, ] """ ; B) P% g) y2 z9 R& @/ K std = StandardScaler() ; C) y/ ^& L6 F. G. B6 u! v% \# i, l5 }$ x pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]8 c! V9 ~1 E4 S* E, } 3 C! C' j& ?# p+ ] data = std.fit_transform(pre_data) ) j6 K' R8 j9 z+ @ print((1000-2000)) / C4 c0 |4 d ~" c0 [( d: y2 D print(pre_data) 2 k/ X5 B! w4 Q print(data)5 a; t0 g. o; j q2 C3 y 8 ]- A- O2 x* d/ T; n8 W# V7 i' c return None 5 p% ?1 U' g, @' n: [( `3 c( C" k3 T( G6 U if __name__ == "__main__": ! V: Y( Z* T0 H( V$ d) e- [ stand()5 Y5 c' I6 E+ O2 y* ]
; |. H! P8 H% E+ o+ U3 U6 m4 O

下一期讲一讲特征工程

w* p- c4 Y, S

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

0 v6 z+ n0 B2 K/ n9 u! B
) \! s9 l1 j& _# B8 e' B n' G) m. E6 _0 u0 Q( ~8 s5 O " C% n2 i L- s/ q0 B: z) C! w 9 t! k4 c) u q, v( `, ^: s9 ?' l$ Y! g8 E' E9 z
回复

举报 使用道具

相关帖子

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