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

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

[复制链接]
! U- l v. `2 }7 b
- E0 g, p6 c1 i2 R+ n% N

铁甲将军夜渡关

( A0 p1 r6 h) z. l' l0 W' a/ g

朝臣带漏五更寒

9 {* {* h1 E0 D' R

山寺日高僧未起

1 R5 m% p/ P7 N# S: D3 u

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

5 l1 E% w7 G8 O, G" k$ ]7 y

一周没有更新了【吃瓜】

# ^/ P; [) T6 j$ `

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

3 p3 ]0 Z* p: M: Q) }

! c6 R* ]7 d. D' l+ P, _+ v

都忙

- W; @: O( d$ J; F7 b

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

8 D5 g7 N% H' V% @
6 M% j2 |8 G7 E2 Y: ?; ^

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

# ?& d$ T. W# C% R- X

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

0 m" N4 E$ H! \/ u

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

) I/ G) L3 [; A& O) R8 V+ i

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

- z f7 `9 @ E

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

. |* n; w3 y! I2 d1 p3 l

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

$ k- X. }5 F% I) N3 j0 O

数据预处理(无量纲化

o3 V+ ?/ O7 _* t7 Q

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

5 R5 J5 D3 i+ t) p

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

$ L P% ~& r6 l0 e$ |3 S/ K

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

$ J( V8 I4 P6 |. R; W" x- W; E7 i

这会放大温度的影响效果

/ K$ V6 v7 `8 Q, i6 v7 t- E% ~

数据归一化

( r! o6 Y' m6 T( U2 d2 e# w! Z P

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

4 |' K* v& c+ \, ]3 Z% A/ i$ C

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

7 @0 G3 [' s1 H2 \; H

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

7 l4 S/ e1 Z, ^7 B2 M: w, n& Z
from sklearn.preprocessing import MinMaxScaler5 I& T7 \2 p2 j 6 ?! \5 I k# Y$ ` def mm(): $ M, J+ j6 X @7 ]: K( ~ """ . a) s! W- ~% g4 i9 e* r$ u( r, c 归一化处理 ! e( d2 j' y9 L6 l3 z: Z; w """7 F9 Q+ M; F% T* z # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1, [ G& F8 ]8 \( i( A/ X$ b% z8 J mm = MinMaxScaler(feature_range=(2, 3))+ s/ C F. P) X; o: ~) x% o9 I " f$ M/ A( s3 @& s: R: n9 }9 } data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 0 a: Z/ N3 f; k1 [8 A) T: v" p print(data)5 H( i* a" [9 _4 x- ] ' r* z. n6 u7 r- C$ k0 d; s return None% W4 ]$ i( h8 }8 B5 Y : j: u# A" G& T if __name__ == "__main__":" v. Q5 h% P0 c# V mm()6 b8 Y% H% H$ s: k" q
* A$ V, `& {' H6 X' Z7 V

数据标准化

+ O0 u* U2 n& Z3 q6 S

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

8 U9 N: G& j) h; I& a0 {- \
from sklearn.preprocessing import StandardScaler 2 @# E6 l% d& m3 i! A & {* B5 m* K2 b2 y' O: D- }! d4 C- O # x = x-mean/γ mean:平均值 γ:标准差 % u/ N# i O& H # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 1 a* d7 [) t' v. i # 优点,不易受异常数据印象/ p j- _8 e, {, z ! v5 N2 G- |5 }$ Z% s& R, e # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响3 J1 q6 O6 Z' d, }6 } def stand(): & X6 Z, t( A& O """ 3 h @+ P& f( ]/ q0 q# L 标准化缩放# Q0 m/ M; P3 Z4 j) |: L """ . j( k& P! ~9 ]' l, \ std = StandardScaler(), T- q1 Z+ `3 J! H" Z8 D# E! K ) u9 i/ S! v" O/ k0 \; b2 ~ pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] ) t$ Q& \" _$ c! Q9 W7 S( y2 @ 9 L, K6 K9 C2 h! i: z data = std.fit_transform(pre_data)6 [( z$ k, C1 {; D0 A0 U print((1000-2000))- r/ N, Z1 N% {4 Q, M. W! @ print(pre_data); d9 P ]: [5 {0 @ print(data)* V, Z3 |$ t8 Y5 r; V , i. Q# k4 M/ d* n return None 8 } u# k9 B+ g5 ^ , W- \2 d6 b1 L4 @8 \& K if __name__ == "__main__": 4 C0 U+ c. Z5 P4 r stand() / D' N6 N: X$ M3 w: `* ?' m
. T, U: o4 h: I9 i% `+ ~

下一期讲一讲特征工程

+ K0 Y( R& k: `( c

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

& y! i& |1 s& t. a( X7 r' H
& ?2 n9 p' P( E% x1 g7 K 4 |& j; k- q& I+ p7 h5 A( m; ^ ' U0 b' n- ~; ?% U" c 5 W2 ?0 e; S* T. |8 Y K$ B4 m% j+ V/ L
回复

举报 使用道具

相关帖子

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