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

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

[复制链接]
' `: h* q9 b" b: R
1 @$ z4 w6 o, P- W! x# X8 j

铁甲将军夜渡关

6 u) h8 y9 [% f) p# D, n

朝臣带漏五更寒

1 Q: w% Q8 _$ |8 S# T8 A

山寺日高僧未起

1 @5 |, n2 \# O; ^

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

( N( x& {) _' n% P+ [8 [

一周没有更新了【吃瓜】

9 F6 {2 A) M9 |9 K6 b- Q! S- a6 @& r

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

R% U: Y8 J) t9 H5 T

5 H. O* }& d8 |2 ~: x5 S

都忙

5 @# m( B4 u+ O) Z! b3 k

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

% x+ I8 @+ q( E* f! R9 ^4 R
+ u( i( _% m6 \

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

) k% O1 x4 Q) \+ e# \# |3 N

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

# {1 G7 l3 n0 U$ ~5 _, x' p

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

6 Z6 m) n8 u& E g8 N

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

( z0 G! D! P$ Y$ R

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

2 q2 R$ C5 C3 P$ I ~

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

! ~8 O# O! O5 s6 R2 T; o( Q) R+ P

数据预处理(无量纲化

, |( {; W4 I( m* Z

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

3 ?/ Q& V8 X! h

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

9 }1 b/ f6 \3 @5 I

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

# h% C0 m* o+ \8 G! b

这会放大温度的影响效果

6 s. f/ a; B8 m. m

数据归一化

# y: G" c* E' ?% Q( W! i

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

$ O1 k2 a# S w- t, H

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

1 I1 z8 K( k: [4 X

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

" u# g; q$ g( J" \4 f5 h1 R3 K! `
from sklearn.preprocessing import MinMaxScaler / q" l' a5 g+ K7 X0 I4 p: s! u, U; F0 V5 w* L def mm():6 ?7 n! G% o0 k b2 X4 E """ - \2 S. p5 `4 |- ~7 [/ K' P. Y 归一化处理- T( a/ n+ m# x x8 W* y/ ]* p; @ """# ?) P3 y" U, U # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 4 \& C* F q! }# J3 V mm = MinMaxScaler(feature_range=(2, 3))1 Y- U4 z4 B* M% q; u# Z& B / \. Y4 H$ w g) K' C data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 8 V3 _& m k/ [% \8 T& ~ . l( G, H5 m) G: f$ S print(data). ?# m& ^5 g. M% G2 c. S - \0 D3 u0 k2 r' r" q) z return None / d3 @; Q& V. \' q/ C N, I, j 0 L2 }* N! O$ h if __name__ == "__main__":- T( n- o7 _6 O+ K mm() - ]* A U0 g. ?+ z6 |) I3 V
( Z( }( }4 c* [2 ?9 e

数据标准化

! M) K0 g. a3 X% y2 g; L7 V

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

# L- E+ W+ x- p0 r1 I' t& i
from sklearn.preprocessing import StandardScaler ) i& U* Y' a" v # r4 y' ?5 l! \7 W( L # x = x-mean/γ mean:平均值 γ:标准差 . {) d* _. v, p! p, @; [; ^ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 2 i, F; c2 V. u: U* f # 优点,不易受异常数据印象) U. q/ C% M d8 E( b7 L5 B7 }, N# b ; m) R% q1 O& r) b. v ^: ^ # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响: ?8 I: @9 C, ?, Y" X/ S j, k+ S) O def stand():( [3 \: q( @/ k( w H+ N: ?4 `& Q2 E """& I5 e z( t! b 标准化缩放 2 H, g. {% A X& W """ * u% @1 }0 C! U$ h: j) B; I std = StandardScaler() M! q. [! G% }' d; F8 q# {1 L 6 m4 o( n6 C/ J5 ]* e7 l0 m pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]: f$ R% J& N' Q% ~1 u& k/ J+ h ' @2 W5 S1 Z* A. Y1 q0 Y data = std.fit_transform(pre_data)% F7 A$ o- V4 O1 p( [! u1 C5 Q print((1000-2000))9 b8 c! N2 o$ i: W0 u print(pre_data)( ^, I7 [4 X9 ?7 `7 c9 O! C print(data)$ f1 d" { w& s# R3 g) V: A) I% N 0 D. X0 G+ e1 l+ N4 [1 r return None+ r: q/ y' e9 C- | . Q3 Z7 v- K" W9 G+ } if __name__ == "__main__": . A. z1 ~: m$ j% r; M0 Y# [$ w; A% f stand() 7 N; r( O- c# W8 f. ?4 H
~2 g, g. d" w E

下一期讲一讲特征工程

6 K/ y- r1 U E5 ]. A

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

8 k" U \+ N6 O3 S4 G
5 E! ?. R6 H' t* W- S& Z5 L$ g# x! @; d- O+ h1 ]1 z+ R# c S; z/ t- R" {' b' ` / M7 v9 y! a4 P; p) G0 K. u' X c9 M6 D" I: q6 h
回复

举报 使用道具

相关帖子

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