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

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

[复制链接]
% q0 H% v1 r5 Q7 P* d
3 f$ e" x& o; d f" `' W

铁甲将军夜渡关

. r, \+ M5 q: W6 e5 z( T

朝臣带漏五更寒

. K. f" {- A8 k1 t) p* N

山寺日高僧未起

$ {+ S! U9 d4 A

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

( R, q0 J/ x) d2 v

一周没有更新了【吃瓜】

2 Q5 t! t/ S' r. k% [( O0 y9 o

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

2 F Q) f: e' L# c6 n: h4 W8 [

- y8 h2 W8 g9 H3 O

都忙

* f r- W, A1 h1 W6 g) l

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

7 o. S( H1 r! x: |. T
$ p9 Z5 v0 r& M2 o. ]7 `

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

& ~' P+ ?, {1 E$ a% n$ {

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

! ]7 e% K% y. ]0 l) X8 e

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

+ S8 f6 F& o4 N/ \7 I5 B

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

' ~: ^# D( M$ @3 v3 g% s0 c

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

t8 O' n: u& g/ u. P, Z/ H+ w: e, {4 \: w

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

! N. i$ N# [0 a

数据预处理(无量纲化

8 [" L3 a7 p- g$ e& }

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

/ R _8 T' t2 t) B- L

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

" s9 q! o7 a! h$ E* K3 K/ c

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

9 Q& g; \. z. C$ v( V2 Q

这会放大温度的影响效果

& j/ ~2 p7 @8 ?

数据归一化

+ e. v& W& t5 E4 p, b4 m" e6 h

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

* T; X! ]( G2 C* N

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

* U& T7 F5 u* `5 W* [) @

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

" {5 i% `. b4 |0 c& D; f% a" q3 n
from sklearn.preprocessing import MinMaxScaler 9 |: ~# [4 D& r, p+ ] ! C6 ~1 s( z0 C; n def mm(): ) S" s* P6 c: F4 d; z! M( Y """7 [ e, F- r) }: A 归一化处理 0 n& | Y+ p$ U6 _ """ ! A2 |! L) l2 r# I/ ?, f+ X5 ? # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1: [. `3 j3 A. [) c/ V! N mm = MinMaxScaler(feature_range=(2, 3)) * f9 s/ v( J) F4 X+ _; C: T: H# `. s7 [7 K data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])9 ~8 w3 i! t4 T' |! ]9 Q: O 4 |8 h# y' Q4 |7 b3 L, I print(data) j' B% x; w! p: M) x! K7 p- U! n2 l % P; x: D% |; @& e. a) C# F return None \1 K0 |1 t3 C3 M0 |& [: K0 I7 y% B6 ^+ l4 Y. O2 X9 x if __name__ == "__main__": 6 i5 w* e0 N! L' o% K9 d6 w mm() ! z9 v% ?& j7 C0 ^
4 I: D( ?& e$ j5 @3 W- m

数据标准化

7 r1 x: Y! ?4 U" x! |9 _* q/ j

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

+ P& r1 s P+ T6 H/ G+ ?
from sklearn.preprocessing import StandardScaler & W% b N/ \. ?7 K/ u/ }# h 8 N# n& K* k& f; g0 t7 _+ T$ q # x = x-mean/γ mean:平均值 γ:标准差 ) n$ Z1 h: q& j2 L # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号; P6 w- ~- |3 X) O4 i9 ~3 ? # 优点,不易受异常数据印象 , d+ w0 F7 B" d) p, O7 p7 ~* J- e! X2 V1 s4 A5 F2 R # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 : g8 u, n; ?# n9 u8 G0 n, u0 z6 a3 g5 ` def stand(): , ]/ e, F; }! N) _' @& p """ # g) Q( }0 m8 F% F9 U6 p 标准化缩放2 R. Y$ f! q) [) ]$ Y+ o """" g* y( x1 Q4 F) P( ~7 C: l std = StandardScaler()4 ?& }& g( d% L j8 X " I- Z, @$ x$ k, y& l% l- U pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] 4 Y4 m# ^/ w# ^6 t& M: E) F N% M" {2 V3 k+ z( t/ i$ _ data = std.fit_transform(pre_data) * s8 i {" e% f: o; b7 r print((1000-2000))4 _$ F7 R6 u f4 R' D print(pre_data) - N9 I c. ]- r print(data); V, G2 Y1 r8 O8 Q / q% I( w; G# b+ b return None ' Y$ \9 n! y8 F6 R" J7 P; X( k/ |$ l- o! g if __name__ == "__main__": 3 q; z# v$ D$ C1 o8 A: k stand() * h* n! o1 r3 |6 U5 x1 g
; m* a8 y0 q' K2 S$ j0 N

下一期讲一讲特征工程

) D. Y; w8 e/ k' Y

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

* b/ e% B5 M+ S' Q* {; P
# G1 m( V e! [! C , p: }7 A. R1 ? z/ T% I, [8 l; Z. J% k* o y) o ' p: m% R4 A2 H6 x1 j9 p0 N) V4 K$ r6 \ , U6 [5 J6 `* U0 I& L
回复

举报 使用道具

相关帖子

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