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

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

[复制链接]
) ^7 k/ m$ |) {% l: U
0 l+ k! Z4 M. C4 J

铁甲将军夜渡关

7 k4 S/ V; @- {. [

朝臣带漏五更寒

( o0 D9 J+ s! T% O% B2 e+ s

山寺日高僧未起

+ w- X8 i9 V2 X1 M; W2 A, E

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

$ c9 i* m5 G5 [

一周没有更新了【吃瓜】

, l6 d- W2 K0 I8 q. H- A, ^% Z

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

: \$ ]! V8 v+ ^+ A, R

8 S- t0 a* p) W. |' {) S9 V

都忙

8 q( M/ z1 m6 b( Z+ G( ~

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

& Q( f. M% F1 W4 G+ v B
1 w5 z2 [- h8 z( ]. K

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

" `, S7 R7 c, b r6 t: j

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

0 Q6 @" M8 \. e3 p/ Y/ L/ i

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

/ T5 n* i* @" x3 A% Y* L

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

/ m4 ^& M# t9 M) [+ V, e

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

3 B ]+ c' @! B# S/ J

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

6 \$ D' `0 z, P$ S7 W" h- G

数据预处理(无量纲化

' V) P5 v* j7 d5 t

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

3 s4 k/ g* K( V7 p N

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

& i% g l8 U8 h: f

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

2 t! j- K! m# _8 D& z

这会放大温度的影响效果

7 d2 \/ k% F5 ]

数据归一化

* N& ?& _3 a2 E1 C

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

' |: j+ t/ v5 |5 ^: p- {. } r5 N) t

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

( |% S& \$ @- X. e! }& J$ c7 n, \% F5 o

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

' Q( A3 Y- B8 P: d3 }$ T( h
from sklearn.preprocessing import MinMaxScaler # k; U4 b9 U4 C6 L9 |- i& v' L# L7 m+ \& N5 w% E def mm():( B+ t8 B6 J* ^* o """; S# R" D' F7 f: g 归一化处理/ E e' j8 {6 \5 {5 K. v: Z I$ _ """5 X* H% q, N3 u" c7 A # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 " b9 M# C# L& W- f: n6 g mm = MinMaxScaler(feature_range=(2, 3)) - ]7 L2 _" Q' _. Z: c T1 H% q. z% c! {, j data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])# s9 P" F* F( j( m & @* X* q! O6 }; Y% E0 b print(data) 3 f. ^1 a j. O$ G+ i' ], u 3 @2 `3 f, M" B. K7 v3 _ return None ! B" o( y/ ~+ q 9 `5 {/ ?; n% n* \8 \1 e if __name__ == "__main__": % A V7 i* Z- E, X- q mm()0 R- F; x) V0 I+ V7 }; A) C, @/ s) C
0 D) D9 N% ^7 Z- T% C5 }; T

数据标准化

5 X/ m7 O; E, T, B$ ^; L3 R

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

5 K6 M5 u+ ]: L- D4 R
from sklearn.preprocessing import StandardScaler6 K7 u0 T; j& O0 [9 I8 X . @0 y, u6 @ P5 e% c # x = x-mean/γ mean:平均值 γ:标准差7 l3 n6 [9 C7 p6 w+ T # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 + K3 G$ H. Y: e ]' S7 C # 优点,不易受异常数据印象8 b, f$ D# e- B U* |- ]' ^ # S" F8 n" i+ q. w$ @ # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响7 o0 B5 i: a! o6 o. F def stand(): . u; h8 F+ i& j$ k3 B- {# Z/ h """ ( G! E1 n" G: W8 T6 V- r 标准化缩放, \) c9 U0 F+ }2 L5 [ """ $ D! {* a! R2 h0 i; ?4 B# V2 d std = StandardScaler() % z& a* c% M- S7 n& X8 Y, l/ X& [ / d3 m; F- q# f8 ] pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]2 s* [3 D2 r4 U$ J 5 e; c1 A# [# P* d" Y data = std.fit_transform(pre_data), s( r1 o* e6 o/ @ print((1000-2000)). K) U5 `! W8 |6 t2 b1 Z& R! z print(pre_data) " \& J7 h# }5 T4 z2 U9 y. B0 m1 N print(data)6 P. r5 B" U5 m& y- {6 l& s 6 a$ C; f: L2 Z9 A4 \) ] return None 4 \2 L, ? q/ s6 q! [) F( j/ f+ [7 x% U4 I if __name__ == "__main__":; `: ^) S# A0 Q stand()- I& s0 }8 s. o, _# w
0 U. j8 D# r; X, Q, E4 {1 H' s# |

下一期讲一讲特征工程

/ y- D9 D) @9 w" L6 B

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

/ I) m2 w+ ?' b4 {! B- W" _4 W3 F
, A1 }6 _! n2 C( s P6 T- r( H' v. G0 J% D+ S% \( e , I6 i; b, D: t: H) l) X / L% [ f% j7 b& O1 A+ p' Z 0 A/ b, g& q7 S3 |% }3 ~/ ]# W
回复

举报 使用道具

相关帖子

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