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

[复制链接]
) M' ~. ]! {5 Q f! l6 V+ F
6 |+ Q. m" X7 g$ \( |; ]

铁甲将军夜渡关

& J( A8 ^2 v5 _0 A

朝臣带漏五更寒

& ]3 x- ^/ v3 l6 k. a s) H2 X; T. |

山寺日高僧未起

/ z& K8 {; p7 f2 C6 l

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

" v% E& W9 \$ j! h1 k

一周没有更新了【吃瓜】

9 t+ N2 B. N- t

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

: h1 \; w+ b! g, o# P- N3 W C

4 R+ W6 K) F X% V7 V5 X

都忙

5 @9 m8 Q* X7 `+ f% V# i% L) K

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

" q1 }7 m7 h, P. {- t
9 ]' t: d8 J, ]: L; H

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

$ M2 G- H6 v$ f! b8 B6 C; S( |% t

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

4 V+ y7 Y8 @! t# v' ^" ] E0 A( g) x

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

% b5 ?% q* u: ?; T3 W

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

k: _, _. G! h0 D* }

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

& u! O" V: J7 d4 }0 d. I- L

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

: c; d/ _# a, s

数据预处理(无量纲化

& A2 Q7 S5 D/ \& ^- y

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

~ C5 l$ F4 k5 D/ M' I0 W1 w

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

4 \# J) P- L5 x

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

* V+ w$ j4 J: Y4 j

这会放大温度的影响效果

1 m$ u' }: l, ?: V+ \

数据归一化

( n7 B& k E, i8 F

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

. t' i# k4 r4 g5 m! _, h* A

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

% z* b0 V, v( W- K5 q' M

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

5 J6 U$ l, x1 e# `8 c
from sklearn.preprocessing import MinMaxScaler : W% D4 v& O; S4 m 7 L9 Y) q7 j' X4 h E' O; ?+ c& O6 ` def mm(): `$ ]7 o+ D8 {, G """" m* D) }( G5 J 归一化处理0 ^9 S" c; U: ~ """6 I9 x0 m+ _4 [4 q% W; K0 | # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1& ]! M9 _1 O5 D mm = MinMaxScaler(feature_range=(2, 3)) 8 u8 r6 n* M4 f8 J& t, d2 S0 D 9 x! V4 X( m) E6 ~; E0 R5 c, v5 A data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 8 m1 O% l2 e" {* m& x 2 P& n& B$ W' U# G- s) @: i) s print(data)/ w$ S& S) N4 l$ S6 b* V6 { , V3 G0 w4 Q& b. b return None 1 C5 d' o. q; V, Y, H & R8 f$ U9 |1 d if __name__ == "__main__":5 j( [2 j% p/ ]& x/ x! ?0 W# ?8 W mm() - A) V: E/ J" i" o T1 ]8 j
' U% [+ M! A ]. [6 m2 ~5 n

数据标准化

. N$ m& L z6 F3 ^3 ^1 L

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

4 y, ^0 S# d4 s3 z; \; `
from sklearn.preprocessing import StandardScaler2 n( Y% u' |8 r# J1 |) J # G% R8 `9 P* d. \' }4 A2 t # x = x-mean/γ mean:平均值 γ:标准差 & M9 W) w8 G) T* x # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 . S2 F M, k. E # 优点,不易受异常数据印象3 F* Q- }1 ?) `# L" d; F! o1 F 9 P% R1 V( m+ }5 t1 P( T # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 - z% C9 R8 g9 @& A1 u; z0 ^+ r def stand(): , T# q* z/ `6 A M# p7 M( h# G """ $ E0 c5 O- W @" R7 N/ G# X 标准化缩放 " g2 x3 l8 g: p """ 0 y; K6 `/ } i std = StandardScaler()! K6 ?) J s4 m9 C W 9 o g# T2 {+ q4 ?( {- b& ^/ l pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] 7 k5 B& J2 w! A ) d8 @% D5 ~/ v4 }3 n( ]) D data = std.fit_transform(pre_data)# V! x$ P9 f7 ~9 S; ^' s2 u2 Y) ~- Q print((1000-2000))' k+ K: g& B( f; V print(pre_data)4 `" E+ Y2 q; e& B$ j print(data) ; P" m5 U. F" \& l! d8 t, X4 e return None , ]& [/ V! S- ?& Q 2 X$ F/ q6 w' g& c" h0 G* u; R if __name__ == "__main__":2 I+ M) h' U" C" ~: p+ T! B/ ]6 h7 B stand()7 Y2 l! {" i$ A' i
1 |1 a: {. T% D

下一期讲一讲特征工程

0 B$ \7 o/ E& r0 S/ O3 k" w

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

% V9 u$ M, b; A* C+ I8 l
: ?! l, ~3 t% t. k- Q& Z# a, M ; A/ n. @9 j: W5 Q* `& L: Q G1 M1 _. g7 u* D: r " |! e! y7 T! S3 k" y 5 L. W& U: _. a2 g0 |7 ^5 s
回复

举报 使用道具

相关帖子

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