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

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

[复制链接]
( Z- t# O& _9 h- E. @5 r$ A
$ B/ B6 B; \. {. }6 D5 s) Y- c

铁甲将军夜渡关

0 e6 ~. V* c, ~& [. \2 c4 {/ |

朝臣带漏五更寒

. N* _- X* O L- `

山寺日高僧未起

4 [ @1 S4 Z- Q! ` y) I

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

3 e# q5 J5 u% d

一周没有更新了【吃瓜】

f' a: C# t+ C6 B8 t' ]* O

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

: P, i) z6 v6 j+ c# h

* {4 ] B' Q- u# ~

都忙

3 |0 [$ V; a& C) j8 C4 n

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

/ z! G! S$ ?& @$ u
5 l$ X* \! n& C

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

- Q6 t; l- `+ D6 |( L, { h

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

5 t8 L* e6 z' h: U% O0 x5 o6 x9 b

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

. M: E2 C/ J3 D) O' c* u( M! R

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

( D/ m2 m; V- l1 e8 q9 t

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

b/ S7 j- H, B( M2 Z5 S' Z" M

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

- o6 l2 D0 K- K: t3 @5 m+ J8 P

数据预处理(无量纲化

g+ a7 c/ y5 d h$ m: ]7 y

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

# c1 d* x9 P" P! @4 K% N

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

5 \& V& C+ r/ E& d, H' d) r

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

2 R9 ?" o N2 J! K( _

这会放大温度的影响效果

* q9 U8 [& s- ^+ `' J& A5 x

数据归一化

y$ E/ O9 F$ j

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

' C m4 n4 q6 \

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

' b6 W1 O! Q, b* i6 E# m

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

- ]# u6 W2 C) l b, U
from sklearn.preprocessing import MinMaxScaler % n: D# S- S2 \; Q4 o" U7 } O5 ]6 U, \+ x def mm():, o O7 S# d5 b1 y """- S, \: r5 d) D5 } k6 B' z 归一化处理$ F5 ]3 h* w9 R+ [ """ $ h1 }+ T/ \: \1 @% a # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 3 W6 z: |5 K2 g+ Q mm = MinMaxScaler(feature_range=(2, 3)) % v2 p* l0 ^! }# c; ?; ^/ t4 K, Y, f6 q' e+ J$ E: d data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 3 s6 J. c' w1 o/ O' _ 9 i2 g0 ]& B) r* N print(data) / B9 h% O1 A& h % ?, i1 e2 g; R" V# j& B return None $ p6 _2 J* @1 \! b) m - } n9 Q+ t$ m; \4 |+ D* N if __name__ == "__main__":- K2 u& `) r0 r0 ? mm() , d4 _' S' B. Q2 \1 H9 u5 q
$ B8 {' j9 f" ?4 R

数据标准化

# E( ~: W6 a/ D) w/ ~( D- T6 ^& h

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

" g; P% }& _5 E- K4 N
from sklearn.preprocessing import StandardScaler 2 @/ J9 q, b% e 0 Z. d1 p7 |7 D # x = x-mean/γ mean:平均值 γ:标准差 0 c. b5 u& B/ j% O- \ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 P! B. e9 c2 p+ ]# R9 h7 h # 优点,不易受异常数据印象" C6 |; q+ n# f- r( F" m% P% m) b 3 J/ K' V& |) C # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响5 h: ~ ?- H: `* p def stand():8 r& j: b1 k' O7 M """3 V2 D# ^$ s: I, J6 J: L 标准化缩放( |& B. [9 E% q7 X """. o2 [3 c/ g$ f) S$ C4 I std = StandardScaler() " l& h: X& E# l5 O7 |! v c5 ^( u- n) Z5 Y' o pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]: I' \ o- s$ `8 R, A & ^: x Y, v2 [* l. e% j& t5 T) ~$ L data = std.fit_transform(pre_data) ! T1 j0 D# e, ^7 v print((1000-2000))) g7 m% u, ?9 ? print(pre_data) ' b1 v& C) a5 I0 d4 x+ b print(data) # G" S1 X4 F; k3 s7 n" n& v: t$ A; ~ W. S- S) J7 E u: g return None , J, o2 O1 ^0 r1 q: l' ~5 A+ Z' F' i8 l& ^1 U2 l if __name__ == "__main__": / r# p" k) `' J: j M) ?/ t- N stand(); j3 |5 K/ t$ X, ]; o
! a- ^9 s! s( Z$ D, u9 c

下一期讲一讲特征工程

, m" I7 C' z, z. k0 t" z0 I

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

5 X+ G2 H$ n5 k h; `* ~
7 {1 k* b* o |: [* b# [) _; o6 I6 Q6 r# D" k( C & ~; q. x6 U5 g% V6 y8 K$ n 6 T Z1 A5 J7 Y& s* u5 u ' M+ P2 f! |& x1 I/ A
回复

举报 使用道具

相关帖子

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