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

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

[复制链接]
% ^; K0 F3 J! g' R4 r. i' ^+ G
+ a. k4 P, i( ^, X# k5 q/ U) q

铁甲将军夜渡关

9 v ]/ n4 j& y' w5 f% w

朝臣带漏五更寒

8 |6 w- ^; K2 ]+ K

山寺日高僧未起

5 C0 I j0 K; ]. u- M& l2 v8 Y

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

+ ?: ~6 Q$ w! w- e

一周没有更新了【吃瓜】

3 y6 b4 P. Y+ a. M% Y8 ]2 ]3 y) R

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

2 y$ k; X% h; e2 {3 z6 m

: Z. k [; B1 u0 @

都忙

4 o2 o2 k2 ?; a( }

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

) i9 F, L2 Z8 G; h7 R$ y- T: Z# K3 `
" g5 f1 j$ q9 ?

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

7 _9 V5 w5 Z3 @5 P0 H* B

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

4 A1 ^2 p- Z- o% X+ \- A

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

0 n- B% ]; z+ K5 M5 D. Q3 H: ^) z" L

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

5 L j1 ]! z T% b

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

. [0 v/ F' j7 D( |# P& ]3 h/ }

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

7 N! t4 Y2 u. U7 B6 U6 i! \% k

数据预处理(无量纲化

3 X9 |# V9 _: J6 L2 q# o7 h; j& h4 a

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

+ j% N, l. {: P6 n

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

! j2 k: c1 Q. g& d0 w

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

9 y$ m4 A& x/ {, y. j

这会放大温度的影响效果

& r& z, d, D/ E5 V6 c

数据归一化

" [- B) i9 O# O+ u

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

8 [) W* y, B# Y% m& C

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

/ U4 n2 Q$ R ?3 O& T2 h- E& ?

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

: S A" I$ s% x# T1 D8 i4 w; [* \
from sklearn.preprocessing import MinMaxScaler ; f: n0 e; ^" S& r( C4 F- l2 W6 w1 y; R5 x2 O5 z' c def mm():0 T$ e& D7 ] l% T6 L9 e """# E+ J6 H# z: u+ V- W9 B 归一化处理 , A f! _& I2 z: Y4 J5 H/ U' ] """7 O* Q2 x* d( s; e # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1/ l/ L* d% Y v" v mm = MinMaxScaler(feature_range=(2, 3)) 0 T7 a4 }2 ^9 o% t2 ?/ d3 C" n0 F, P, m$ ? \ data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]); C, I% d( A: o# t% i# E/ _& e 5 P, M6 ~7 }1 P4 c print(data); ?0 q7 S6 m8 {. o5 M5 Y & ]% \ S* W9 s* a3 @ return None+ [# E: R' ` A, O- F+ Q* U % a/ z& B7 o, x- M3 G if __name__ == "__main__": ! }% Y% k, q& V0 | mm(). d& F5 C' l$ }# Z4 ]9 j
* G( S* F( T+ b. N5 ]

数据标准化

+ m+ \, v$ b$ `7 }+ V5 i& D

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

" L! _$ J- }8 ?: i2 T( t( s& }
from sklearn.preprocessing import StandardScaler $ `, L: K0 x) @" ~* K & o* H4 R9 O `! X! {/ u& X # x = x-mean/γ mean:平均值 γ:标准差 / y. [# @, H7 b( q; d6 l X3 T # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 $ h' Z/ ?5 d( Y. c$ P, J% M # 优点,不易受异常数据印象! Y% ]6 ^% l% b4 t 9 }* F7 c! O5 R1 X( u2 C! x # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 1 t, A* l. w/ Y8 p def stand(): " ?2 @; y, C2 `( J2 ?% L0 x """ $ F$ Q. `" |0 f& R0 W7 T& { 标准化缩放 ! H3 U4 o7 N+ L+ r """ - u% G" {- s6 y1 | std = StandardScaler()8 {2 R* u, ^0 y' {2 p2 |( \5 i0 ^ ) }4 K9 ~, e0 R* G e pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]& a0 d% s$ \8 N) P% _8 K+ B * v; ^7 u: X0 u data = std.fit_transform(pre_data) - B* P$ g! P) A3 t( H0 W print((1000-2000)) 0 S K! ]- V3 t& J" W: a4 Z( X* N print(pre_data) I8 K5 j$ P. }' N/ E. W: t print(data) + n8 u: m! Y5 m" `% p1 G. @7 }) i* h. \3 y2 ]1 ~# E/ W( x6 c return None8 m& ]7 V( y, h0 p / }5 R- H. J! N, p% u) h( ? if __name__ == "__main__": 3 E* R- U4 B1 ^+ M! R8 X% d, B stand(); l4 b6 t0 H; N. {% Y- ^
. K, z6 Q5 O4 ^/ c

下一期讲一讲特征工程

( S" l- T$ s1 @" W$ F9 Z+ q+ |0 ` @

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

' z) _9 j @. g5 N- ^4 O
# ~6 w" h/ E1 b9 [7 J- @+ ?* d. R: }4 k7 P! q' I9 ?( E# p5 t& v" `' X * `% [* _$ @( l8 T : K* u; |! p+ e8 x9 ]$ k & j4 |, D: }7 u) C: Y' \
回复

举报 使用道具

相关帖子

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