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

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

[复制链接]
0 B7 A. E& F" ]! i4 K+ T
: r0 a6 O4 M( m! g1 p

铁甲将军夜渡关

' X9 k( m4 F6 U) p, t4 @

朝臣带漏五更寒

7 z% w0 d! n+ |; B p3 A

山寺日高僧未起

! r$ t& k5 l$ n8 K4 m" d

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

9 M/ G+ ~6 X! Y5 H; k9 `

一周没有更新了【吃瓜】

8 v4 [# [* D& l1 E$ e

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

$ Z6 Y; `5 n3 o) }# [+ g* [3 Q

+ G* _9 q0 R% ]! K D8 y9 N

都忙

, ^; n" `3 P0 I! e

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

% P6 v. k, B' I6 |, p( |& M) w$ Q* r
2 w% d# g3 F; @& Q* k# m

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

6 |9 Z0 i. I$ O6 g7 T

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

! l5 d, |5 t* W, L4 m4 t7 q

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

. X# U6 ^: `. o- q6 c- C" ?5 @

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

( Y* r' a& j0 e: T0 p4 n

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

, N5 w. b' D4 w" ~ J# Y! C& C

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

! I+ z* F K V6 ~

数据预处理(无量纲化

4 I9 E; {8 z; e

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

8 P- }, n$ s" C, [( b

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

( S7 m& \0 \6 @" [' l+ ?& C8 Y

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

: k2 r6 |% A4 {& u6 g; V

这会放大温度的影响效果

+ I9 X. j L" G# O( a, a

数据归一化

# V M! a" G# B. n

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

0 J1 o$ i Q1 R% r, P

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

* J0 Y+ J" `4 S% b

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

8 a5 @5 v/ a2 Q- F
from sklearn.preprocessing import MinMaxScaler 0 F! a6 I& q+ [" M/ o. \" Q. J, z0 q) R% v T3 v; l1 q$ U# }5 s6 U def mm(): , C& x+ K7 F; H5 s/ f5 A """+ }9 E- s+ h& l 归一化处理 / d* C6 P) j0 t* S. S1 d """- R1 s6 S4 r6 h. ] # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1& I! b: d5 n# N+ H/ S mm = MinMaxScaler(feature_range=(2, 3))" t4 e& w, z' N9 Q+ Z1 ] $ t* X8 _9 T7 b! ^$ X data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])2 ], c8 ^& f/ C. c' |$ \2 S' m ) e+ E& b# I! D; H: c% i. y0 v print(data)1 G6 o3 y' k: u2 Q$ Z1 @. Z 0 I0 x; ]) t7 b1 x- k: w. s return None ' ~. \8 i f, ]. o1 ?- r% J- @ . J, f5 `( y3 ]" j( D, s$ M! T1 n if __name__ == "__main__": 8 `+ q: W" e8 ^9 {# j; M e _% f mm() N" k* d9 ~) c4 y
; R' v' A! j" r) E

数据标准化

) v8 z+ l) k5 V$ n- G* q+ q% t

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

' b4 }8 O0 x0 L
from sklearn.preprocessing import StandardScaler 9 t [& G" { j7 B }& r2 N+ p - W1 g3 K! `! r) S1 Z5 K L # x = x-mean/γ mean:平均值 γ:标准差 / ~4 A# p3 N" B1 d. i/ ^1 I # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 : T# H7 _5 R- l6 k% h # 优点,不易受异常数据印象+ ^8 Y0 r! j) @; u( e6 P8 d 4 `" G6 s, s+ ?/ D, t1 l% Y( n: F # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响1 E( J* ]1 k. _ def stand():8 e: S l- N8 s2 ~5 Z """ 4 {7 p: P' b% A8 k+ A* Y! x/ S 标准化缩放5 d; B4 m! ~8 ^! Z) k' P5 u2 q/ v """ , F1 o1 D6 b0 |6 d$ i! _ std = StandardScaler()) a- Z# }' J! l! z* t " Z; g3 \) M1 x3 C; I& D& S6 ? pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] ( y2 t# S/ }7 ^+ j3 o1 V# d5 z" _) ] ; Y5 a, Z. ~0 O3 s* e" [$ m, n data = std.fit_transform(pre_data)' Z ~; T ?* H5 J/ o& H: y print((1000-2000)) / d1 z' a& \/ e7 g7 o& N print(pre_data)' r. H3 D* ~2 a+ m& w$ q+ k print(data)& z0 ]% r( Q5 v, j0 @ l7 I : P' `( D" p/ Y6 B+ @4 {9 _" y( o$ G return None . Y- |( f" i- t( m8 f5 Z 4 L! ?( f) ?/ F2 r. j: L if __name__ == "__main__": 6 E9 h: g, K( b; P* { stand() 4 \4 z9 h- I" s# {6 f2 F
: y( p6 y0 L8 t6 p+ s

下一期讲一讲特征工程

1 R* w/ Q: p0 Y9 H

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

! X; N9 y! q5 |. |2 t7 z4 h ~: Q
! b4 Z1 b# o) o w1 G7 U4 `' X ) a$ R! P+ @9 B! [0 _0 _/ t2 m' \% y$ A/ p: c+ @: c* C9 M. r / o6 \# J' p* i, k/ h5 A1 _, G& G * `4 d1 z; G7 g8 v3 t5 k
回复

举报 使用道具

相关帖子

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