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

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

[复制链接]
6 y9 G# C9 ~9 F) q& b1 N5 k
( d3 d1 h. G2 J/ G

铁甲将军夜渡关

: p5 t' `, h- @9 H8 U( C! ^6 X% X

朝臣带漏五更寒

+ z p, L* i+ ~* i4 F

山寺日高僧未起

Q; I4 B7 J. ]0 j

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

; n" R, d6 J/ b: Q; c( c

一周没有更新了【吃瓜】

/ T6 @ j4 W0 ^3 a7 O. a( y" j4 i

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

5 |: Y7 Q4 G1 L$ S, s

# A- j8 W6 F% h

都忙

1 y& J+ Z& A B/ R' q

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

" E5 ^- o \3 ?% _; K6 N
x) Y5 c' ~4 ^3 W& k3 I# m

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

4 _ ^6 g' w" d6 u. y# G! P

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

4 C6 a0 L, @7 r4 k# z' S0 n

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

$ Q6 d7 }) n5 G: ~5 [, Q s3 N, x$ f

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

. c* M# v. W! }8 U4 o5 l5 j1 {9 y/ e

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

" y8 i! s! z' u8 L# u: Y' t% H. M

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

% ^ |! t: i8 Y- Z

数据预处理(无量纲化

2 i3 H3 u% t. |) W

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

" r8 T% W0 [: R2 _6 m0 ]% t) j1 N

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

' N6 x$ T" `* y7 K. P

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

% I* L1 I* u5 C. B+ @+ a! R+ M5 V

这会放大温度的影响效果

" e" p" f# b: W* X1 n7 Q$ ~

数据归一化

e3 H0 E. z: X5 ~% t o

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

* v8 F( n4 R# z! }* S

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

& k/ P: v/ H; v4 ^; T4 R

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

$ Q, _8 q8 `' C1 e* u6 e
from sklearn.preprocessing import MinMaxScaler9 K5 V+ O. O& K 8 J5 L1 H4 k( A9 u; g def mm(): 5 N6 T" R; ~6 i: B" i; g ]* P """ + ?! O& o$ o0 |$ J6 f! J. I 归一化处理 & N, y7 S5 S: v% r5 j/ Y) u """$ i" d3 w: J) D5 k # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 + T* m+ c& _# O. u mm = MinMaxScaler(feature_range=(2, 3)) 2 s" u" ]. e; ?% { " I1 X3 X3 j- V/ R# Q c data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])) `- M2 ~. }- s I9 E$ {" q) x& |# L print(data)& a% O+ m. s) t6 l 7 h1 ^7 c$ Q% v, X5 u0 e& h p return None7 a/ ?% m3 H# Z* y ! M8 ^6 Q2 \4 B if __name__ == "__main__": D. \# j# _5 K% L3 @& V) c mm() ' M2 R+ U" ]& o1 V
/ X/ x4 H {, G# B

数据标准化

[( J5 c+ p# t$ V* e$ C

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

, j+ z6 ~- _6 @% o0 ], h
from sklearn.preprocessing import StandardScaler. \ t3 k# _; s! G2 H% `2 P 0 b9 ?) K4 D$ P* I$ N) ?, [# J # x = x-mean/γ mean:平均值 γ:标准差 0 A' ~6 S" B% q/ p. l # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号- j$ G' W' E0 g% x, N1 W" v& o # 优点,不易受异常数据印象2 U0 B1 ^! e. j( ~- f% Z* J3 ~! { 0 I0 `0 H/ S/ p/ S/ B# J% k # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响7 P& F" {3 l+ l( [ def stand(): $ x8 ]* ^- N/ ^. O """ ( x# A" m( E2 ]$ f7 B, x+ H) o 标准化缩放 / o0 `& o8 j& G0 N% u """( B: M2 R+ g. D# Z: G std = StandardScaler()' `. p/ c) a9 _2 @0 E& i 2 [- K$ P; c7 X pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]* w0 w) n) W( c% m6 _ " @$ W$ E/ u7 T5 | U. | data = std.fit_transform(pre_data)( }% P5 }' ^; P3 ?. W print((1000-2000)) ( L$ D* H$ }) t+ I* ~ print(pre_data): |9 u, W$ l) e7 M4 `+ Z print(data)& E4 g. x8 M% c! \ U1 E a- B ! |* Z6 o: \' i& ?" e return None' Y5 @3 L& x% L# N5 J2 `8 m* F3 ~ 4 C, ?7 n; q8 c. U8 }3 |3 y1 N9 ]# X if __name__ == "__main__": ^, G$ D5 J' j8 P/ C: h7 U/ x3 `: X stand()# U% `* o" d4 Q$ E4 d& w* S- ~3 e0 X
* ?8 A3 D- _5 | q

下一期讲一讲特征工程

. r' L7 b/ n# ]7 C$ U( W

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

( _7 N5 y3 z$ m) N; Z6 j
' g) H+ F/ j" {4 H; @) O& [8 J1 p. b+ ?, ? 5 h. E9 n# z$ C {" A: v* u0 b9 N0 H! z ) y3 G o' h8 Q; F4 f
回复

举报 使用道具

相关帖子

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