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

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

[复制链接]
( X, `+ ?$ q3 Y5 |5 h2 ]4 Z
2 d6 r$ Q" J( l# y$ N0 E

铁甲将军夜渡关

1 i7 V: t( x8 [9 m4 m

朝臣带漏五更寒

8 l: _% A1 w) F3 Y8 v( w9 b2 }

山寺日高僧未起

8 K; x2 F$ ^2 Q3 n. O# @

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

7 B" |" ?6 ?3 Q% ^ @/ M

一周没有更新了【吃瓜】

* M, v" X1 _# c

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

4 E6 h3 X& s. \

2 p( K% a* j7 \4 a% I8 b

都忙

, I% ~% {8 d2 @2 b. ?. a; b% ?

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

# r9 x% [$ V& B" O
. G, A% Z1 e& g1 c: M% Y

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

6 i) z( @- d" Z/ z& Z# Z

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

- u( g" Z( \7 _( y: x' i

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

; Q9 C* ] ^! Z: S* v K

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

+ L& C7 i0 u9 G/ D+ X

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

/ y' j) g- x2 F7 _4 P3 i

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

& E% P7 ~5 e" G1 Z

数据预处理(无量纲化

4 T" v j e- D6 i' s+ @

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

) R, Y1 g7 I9 V" D5 j& u

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

; ?2 M. q( ` p" }# n7 H. \1 t

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

3 F/ R% B' J0 @

这会放大温度的影响效果

1 z+ c, U; E! E X$ R e% \. S

数据归一化

" [5 |( r% G. o+ j. h3 p' ~

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

. Q- n6 t0 R6 s, t' H: m0 W4 r) ]

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

! \9 M5 H! m, w, j2 i

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

/ _$ E9 R1 l2 |( E5 }( k8 r( q
from sklearn.preprocessing import MinMaxScaler/ [* s+ x0 X% E% O / m% ?7 v- w( G' J$ P# Y def mm(): % ~3 v' B8 B) }. h! T; \2 o """0 @2 O. t6 C! p+ a6 q1 ` 归一化处理6 H3 l9 P0 _- h8 y0 @6 z; V' S """- Q8 j, O) m* n # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 2 O6 b/ Q& @' z+ i1 G6 s mm = MinMaxScaler(feature_range=(2, 3)) ! B$ Q! S" C$ Y: o/ h6 t8 T' I- l" t data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) , W2 c$ B& D7 O. Z% ?1 a2 j8 J$ V3 K print(data) & d4 ~( ~. _3 v3 m: J* L ! c7 W4 H8 p5 m. c2 t6 ? return None r# Q- D0 r$ S, k: z9 \ , g3 `/ L8 j/ f* A( i, F c, V9 g if __name__ == "__main__": ( U$ P0 K0 T$ M& s3 h7 ? mm() $ p8 v; d0 z: \+ }6 ]/ i3 d
; I# Q, R+ j. Z

数据标准化

. h) ~/ P: q) Q7 F: T6 \! d" M

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

7 V# ~1 v% r# s' G7 p3 P3 p
from sklearn.preprocessing import StandardScaler / u; W/ H' _, M- j( S8 D7 N: \" s' l r! u9 ^( j" s # x = x-mean/γ mean:平均值 γ:标准差 & k/ P* d# S# z: ]1 L3 h% ~+ F # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号/ F8 r- q) ?7 O" V9 l # 优点,不易受异常数据印象 ! j r# Z8 ?+ o$ J7 V) u5 \9 A1 m1 O$ j- Z0 N5 Q) {; g # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响$ a, `" [! a" ~$ Y! |8 ?0 a def stand():# e5 W7 k3 H" R* F$ n5 T """) t/ q) S: O9 E" h3 ]- P% f# K! X 标准化缩放 # } u4 I* a9 i$ { """ W; _( `0 |8 X3 a std = StandardScaler() * C/ n* h! S; s2 k 5 B1 i t* h6 Q- T pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] " o: z. n: u `5 d1 k0 h: D+ ]8 C/ s d9 b6 h3 A4 ?. G data = std.fit_transform(pre_data) 0 P. T M$ \5 j; p+ c" n print((1000-2000)). y% U( W' V" ~6 G S" q9 n& H print(pre_data)5 Y. w/ U2 _2 ^% I0 r print(data) ; k* x7 _5 ~: P1 U X' H7 G( Y return None ( d3 L: [1 ~4 A' Z2 V* x5 W" D3 q- N# T6 n& R if __name__ == "__main__": 7 |6 b% J* T- K [ stand()2 L' z1 w& G) X. }5 W& P
( p; X0 y5 X' ~1 Y2 p( q* A

下一期讲一讲特征工程

! p0 A% @9 p- D9 Q" m5 m

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

% X0 E4 C% @$ v& Q ]
+ m+ S( q8 m- `% q) ] 5 R2 j8 U- A U2 L: l' x+ I6 X, d6 _# J, [) Y; c 1 t# g6 r/ {/ D* W2 Z' O0 s 2 ?. T9 e# T# l5 S# s9 u/ L U5 q
回复

举报 使用道具

相关帖子

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