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

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

[复制链接]
6 r, ?+ t4 r2 S8 \
( E2 V* q9 v$ `: L. m. V/ w ^

铁甲将军夜渡关

: O0 }1 u5 V8 y

朝臣带漏五更寒

- B J* P/ c! a1 ?8 b

山寺日高僧未起

' k _0 ~2 M7 W& A

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

) W+ T% {, J# D |. K

一周没有更新了【吃瓜】

3 P: ~$ j: a" l; }0 j: M8 t }/ q

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

8 Z- A3 z/ i; W

7 S8 L+ y$ N' Y) f( }- n1 M

都忙

$ i. G h) m! d0 [( [

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

& R F1 J9 N/ W: Q5 m2 }
/ [ y& h% w% ]6 h( `; d

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

1 _2 i: R$ S2 K- \

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

% k" D& B( c% [" e6 c

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

$ h, `$ g3 s; z, @& z) _

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

8 o2 z0 Q$ { K. U, E" Q

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

2 j5 a' u0 O" _8 w+ u2 @

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

7 N3 g& j3 D3 y, @) [- Z

数据预处理(无量纲化

6 h4 a' p- Z( t( X

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

! e/ k- k/ g% b$ g* W

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

- }& L) a# n$ s0 {

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

: {6 B; O- D+ B, s1 Q

这会放大温度的影响效果

, b' e7 e$ t- C9 Z" ~: O/ ^

数据归一化

6 J( J* \# }7 W

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

# b8 R& D' ]" r I3 K1 w* O

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

% Q/ l R5 k) e7 s6 j8 `# ]( g3 h7 u6 F

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

3 Y( k- r! h, t% U
from sklearn.preprocessing import MinMaxScaler" W' h' L3 F$ D) U 1 p$ w9 [% A4 F- V- d# [3 [ def mm():6 {$ c6 r% a4 i" D0 e4 R7 W """ j q4 B6 `; ~& y 归一化处理 + l+ i3 K# p1 v" @ """ - A4 N e0 h* T! }. i) b # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 5 C' P1 g* R5 Y1 [ H mm = MinMaxScaler(feature_range=(2, 3)): x. I' z2 S, |7 n% f5 [) i- p( d ( N0 ]4 U$ u8 d2 M data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) 0 q" m! {7 b& j$ \% i$ C/ T) m/ R3 \* Q/ |, B0 n print(data) $ T. B! h/ h; n) h( S1 a, u + C# @, `- x- p7 y return None' z4 H* Z, e% y$ B% J8 N ! {9 X2 A, ~8 j$ D" ~5 P3 b if __name__ == "__main__": 2 B; w4 F$ g! Q# y5 w! ?/ E mm()) u( L) S* w$ O! Q* ^/ z% L* b% q
9 J- I* x6 V" Q) g! l6 b) ~% N: O

数据标准化

! Y. y, i3 r7 E

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

: ^$ @! X3 Y. j3 t) o3 B" f2 T
from sklearn.preprocessing import StandardScaler 8 {' F* s N+ V- n% ]9 c6 @, H8 {$ G: y # x = x-mean/γ mean:平均值 γ:标准差6 `4 v# N" T; b2 \ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号& t1 p7 D3 H7 B* F( B6 ^( z # 优点,不易受异常数据印象 8 ~: Q) H/ C1 ^3 G `! I4 Z2 Z2 H8 a( `9 z7 U # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响# o& o2 ^+ K& K def stand(): 0 v+ T& O! g0 r# V" g' G """ 5 F3 R6 N; ^2 C6 E3 O0 ?, C6 ~ 标准化缩放: ?7 ~ ` y7 ?4 S7 y$ ? """; ]8 L% b3 M t% G/ N std = StandardScaler() ) \/ q. M" P. l7 l& I" a ; i; W5 v/ b/ t pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]8 ? O0 _" @6 P6 z- a5 O0 y & |9 P/ @0 d) y0 D# G data = std.fit_transform(pre_data) 6 l' ?3 o% ?3 d1 `" ]& D print((1000-2000)) . d7 D& m# p) y; s2 ^0 @- w1 c" m3 j print(pre_data) ) v5 g3 X5 k1 A' s print(data)& d' b2 G: a: w7 z C8 S& \0 L5 v1 c return None' k/ t$ @/ r$ j 4 G( o4 ?- `' b if __name__ == "__main__": . {5 ^/ J" K2 K4 f stand(). c: L9 P: z- `6 l' h/ J3 F
1 C& j" c# S- D8 B8 X

下一期讲一讲特征工程

5 d1 e+ G; a8 w) f, y

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

; l B, q/ c: j3 [
4 _. m5 h" t! d7 Q- S# K- S7 s) R 1 ?- L7 [5 g% D; U0 C D2 X; {' B : I$ O5 n2 j5 [" M- J9 ` q+ Y/ Q # j' Q* @; P* t. T0 J- A; f 4 p! A0 f: _" j- a8 e: _. y2 f
回复

举报 使用道具

相关帖子

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