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

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

[复制链接]
/ O6 H$ [3 i+ \
1 C6 {6 j6 U3 v9 H& G E6 m

铁甲将军夜渡关

8 j4 `- k2 [4 h% K, w0 O% m( j; ^& c7 W

朝臣带漏五更寒

/ M E' a% @0 _5 ^" L* b

山寺日高僧未起

8 S) d4 W& [, g# T1 S

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

- J. n# E9 q2 @0 ?0 }. X$ _

一周没有更新了【吃瓜】

4 S6 N8 ]. c, _! h

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

0 i! M9 W/ r$ u3 c6 R

- O) V) M: Q* `5 K v& |6 e' m

都忙

# }8 n6 \: C! a' `+ Y4 o: }

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

2 n5 d% J: U L x& ]0 ^2 X* D
/ h5 k9 R' r3 @4 y

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

2 @! Q5 D' l$ m, B# L: N

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

C& F4 S$ P F& k

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

: w2 c2 l4 w, ~5 F- {$ C

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

; }1 R5 h+ y/ r( F9 s# h- ?- ^

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

i6 V+ I i9 |% v3 F8 f0 C3 W

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

& |+ f# G/ M) o

数据预处理(无量纲化

9 i. I% Z0 _7 c# X

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

3 c8 l+ y5 O% f% r+ c/ K$ v

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

5 P8 `& I/ Z: H, s* k8 g) Z

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

& d9 ]1 j7 e- e# e# ?* d4 L

这会放大温度的影响效果

7 l1 ]/ B: l5 Q8 n3 v

数据归一化

4 f& _% ~& Z* u& c) j% Z' o1 w

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

2 n0 b, E5 U1 J3 Z

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

2 R+ @. K' s# d0 F# P

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

/ T% L/ d- g- \: t
from sklearn.preprocessing import MinMaxScaler% C# W6 m2 v& B" T) P' b + r- N. \( B: |4 W$ j2 r def mm(): / P; |1 a4 A1 V4 Q6 B0 w """ \- T2 D9 U s 归一化处理 8 c, y9 e, j9 B& n2 @& s. w0 a, W3 g: { """ / l& L1 U# g) p; J9 a* U # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,19 t% [3 X0 B j5 k g/ v9 e, b mm = MinMaxScaler(feature_range=(2, 3))7 r+ b6 ^4 u3 \# {. e( _# L + N9 L8 q" B9 t3 \# |7 p; k: F data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])% K% e/ y8 J9 z ( H$ L5 y# r! ^; D8 B% q! F print(data)! I' N" y$ Q, j: D2 p k4 K # _# u$ E; ]4 u+ Y! l return None, B9 X7 [ a' a M% U 6 i6 ^+ o/ K8 M8 [/ B# t if __name__ == "__main__":5 e; F( f! A7 v3 J( v, M! C4 h3 Z4 c" l mm()+ B& I" o Z9 S/ q0 @3 d# ^
' T6 r5 A; ?1 Z: F

数据标准化

/ W" N U% S$ w }

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

G6 p* l7 X4 c% }& `
from sklearn.preprocessing import StandardScaler / ?# U! H+ q2 X/ q& B, [8 P 9 F# b8 A2 E e: E- T # x = x-mean/γ mean:平均值 γ:标准差 , N( S* U8 S4 R9 v7 d1 o5 f # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 1 ]! E! X9 h) X# b3 p+ ?3 @ # 优点,不易受异常数据印象/ N1 G3 \4 `( u. J9 t" K$ L5 l9 L; N : \4 @7 M) u: |0 O$ [ # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 ' i, N: p9 }, e! C9 |3 M% U def stand():6 |9 G F% V S+ p- J* D' Z """ - N7 O6 b: j: w4 T 标准化缩放 6 D3 Y3 o; p' x( C, F """' t$ G# Z$ F0 ]! H std = StandardScaler()4 R3 d* ~9 X% A9 @; t7 @ # b# ~8 _8 i4 x# I |$ w pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]( V0 B5 M* T; P9 A " Y0 J0 h' ^ e data = std.fit_transform(pre_data)9 i/ V# O t- H# t" n. G' R print((1000-2000)) & [% Y/ q& _- i9 _, y print(pre_data)- c9 j- |2 q* C t" N2 a5 U print(data) ' d( G( r, {- S8 ` 1 P& U! C! Z3 I3 R% t return None $ ?/ S s% ~* y$ y' L5 o: q: }$ c$ T7 J0 {* m+ h3 v if __name__ == "__main__": ) e5 W' Q* ~5 t stand() * L' u2 D! P1 b4 w8 P0 I7 R
7 B9 V! H+ G" _0 l2 k* L. M2 G

下一期讲一讲特征工程

, v7 y1 Y* T: ]2 n2 E( H3 U

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

7 @3 e; ^4 a/ b3 l
% F' W3 E r7 V _1 B # f- f3 `. M) ^( n" y$ w/ c 5 v4 x6 v9 V$ S) e k# c0 Z6 A8 A8 K! a & t+ S; r( _/ l& y- H
回复

举报 使用道具

相关帖子

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