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

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

[复制链接]
( e7 |* c5 u4 A; P
8 v" j; q. a6 ^& o3 v1 x2 b

铁甲将军夜渡关

' W7 b8 _- y1 ?( X P9 b, I$ _- v

朝臣带漏五更寒

) c [* X( u; ]7 z0 c( L

山寺日高僧未起

+ R6 x, p& q( Q, D: s. O

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

; u# q. c f/ j% Q

一周没有更新了【吃瓜】

0 L7 S$ y4 D, b' w m ?

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

/ b: t" k8 y* f. ?- Q, V3 ?( m, i

; A: A6 s, h0 E6 F- D- X) S

都忙

$ ]. J" i1 Y; m/ Y+ H: X

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

7 m) D; |8 o0 @( q& M* P$ b
# U$ [7 U0 ?$ M1 p) e

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

; z. \% m* Z+ J1 t3 ^- @/ E) ?

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

% U) Q! U4 p0 U3 E3 Q9 h+ ? P

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

T0 ~" ~: G# {! n" n- P" n

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

% r S D6 x7 b% {& T2 d! G9 s

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

N5 e! m3 o1 o9 W+ R8 c

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

) W5 y9 i4 c+ ^! P

数据预处理(无量纲化

5 G# Y2 o5 ?3 k2 @* i7 S( R

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

$ T4 h$ o6 N+ O! K! d8 ]) B6 _, f3 G& \

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

! d. ?1 G# X; E# y+ ?1 S

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

8 T* j% d% Q; V; d; k% Q7 y

这会放大温度的影响效果

" C& S* \/ x2 ~- x! n) i& X: T3 ~/ h! B

数据归一化

' a4 j2 b7 `- I/ _. i

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

+ L8 c" G: L5 {' F

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

# g3 p: ]% l' x1 |% n3 Y r

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

U" B/ ~/ H, @
from sklearn.preprocessing import MinMaxScaler ' ]0 q' }" t$ P8 u5 D5 w4 W: J0 a' V, T' s# o1 b0 \, S% N4 ` I def mm(): 6 c8 ~* B, M7 m7 d( u6 ?+ F """. g8 i7 p @) R R 归一化处理7 K8 ?# l4 A2 _( o0 } """5 ?1 {; M+ P, o9 W+ F+ E* M3 f # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 / q3 Q+ ?6 F2 b mm = MinMaxScaler(feature_range=(2, 3))0 ~+ }. z$ @ M/ ^% y6 D n' p% x 2 d5 Y8 @9 N, [0 z data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]): D. V1 v. J. E 0 y {, A. ^+ f0 l+ a, O5 i7 L/ c print(data)4 m9 `* m8 u$ I1 y' J& ~ 0 U2 k2 L& g3 d2 C" A return None + s, ~5 R& ~: D' @0 {+ E* F: Q+ K2 p; M# M& \ if __name__ == "__main__": ' G2 d# W( p, S' w- `" J* f mm()8 n' d/ u2 N8 C' x# j. A
- L* D5 U3 v8 a, s

数据标准化

1 ] v: {4 W# ~: v$ b8 H

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

% c. Y. q& J1 d7 H* M
from sklearn.preprocessing import StandardScaler Z8 B2 q7 m4 C: O : \0 i' C* \( X4 k! p" z # x = x-mean/γ mean:平均值 γ:标准差& o7 V" W/ T4 I# j2 K7 W& X. @ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号7 P5 s5 Q8 m, o # 优点,不易受异常数据印象 $ o+ J: J+ S( L8 }' ?+ R! O* g" ^' S$ l! u/ ? # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 9 N4 {3 l( |4 Q% i$ T def stand():3 ~: z- q) y* F" Q) I' B) [5 ~ """# |1 F& _4 T& C/ X$ F$ v5 V$ U 标准化缩放; A3 ]$ L5 w0 w0 R. b. A """( x% s+ {9 P3 P, f e1 K+ g std = StandardScaler()5 X4 c, }" l. T ' T% N9 A* b k+ p( B pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] $ o* i! a, Q1 @ ! q ]9 e* e5 J! z5 V* M' d data = std.fit_transform(pre_data)+ T: k% k% T( u print((1000-2000)) * Q) Y( u) E; L! N/ b) H3 K: ^* n print(pre_data)1 r" v0 F8 I. l) f& C5 k print(data)/ h. P9 \% F( h* Z' q , ]; }; h4 j& ~2 G return None' K& ]8 S+ g+ t8 S. V# q * O3 w5 Y$ R" S) U if __name__ == "__main__": ) }0 ?+ f5 [; q9 Z# c stand() # M9 A, I5 w n& F8 W
9 F8 v; ~! t2 x' z: U4 |( u

下一期讲一讲特征工程

1 }- P5 e& z( f, k3 Y

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

* D; z7 E4 X1 f/ ]8 j
4 i3 L( h& [/ D/ N; `3 A# Z " [$ e0 c: P* O5 f9 [* x* A8 P3 B4 o4 n* p2 F0 E & h/ h) n5 W; i1 a " @ ^. `. |. ~% w- o4 d
回复

举报 使用道具

相关帖子

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