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

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

[复制链接]
" x j$ K9 n3 D8 @9 s! ]. w
+ N% I: w+ n0 f% Z2 F: v. m

铁甲将军夜渡关

: B4 `0 }* C+ P! h- h9 j: I6 w0 i" r6 s

朝臣带漏五更寒

& s5 j8 g% y$ P5 |4 x, j& s+ g

山寺日高僧未起

- Y- C4 a" `( j) A

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

" P! Y) Y. y& A/ J- v: K

一周没有更新了【吃瓜】

W% N" y# K8 J$ s. G+ y" @

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

0 k' ^9 S% E) o% w! F, A

1 Z" {' u* l: Y' Q2 k5 S* ]9 f4 }

都忙

4 F' d h6 }1 v1 x7 d# j

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

( G: E" I' c5 h% E$ Z. g. J5 ]! o- J
: T: R3 v/ x" s( a J- o1 w, p8 N

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

. @ T1 d; p; t2 F

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

6 h; D4 `" b# ~

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

7 n2 M8 M1 p! G9 X

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

7 _& D4 J: R& |. N, R

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

# E/ I7 J' s- p! [; a1 ~8 {! U

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

* J* j) T: _3 {/ H& v' S' R/ G

数据预处理(无量纲化

9 W# E2 V3 d2 d

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

0 U+ @6 Z5 |' S

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

2 m$ M6 |% M- [: U8 W3 Y

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

% G! t$ j8 k5 M3 z: \; s+ _

这会放大温度的影响效果

% I7 t% W# U1 x; f! Y5 o

数据归一化

# Q, v( t$ V+ _8 t: W Y# n: A8 U% T

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

( f' O3 N+ \9 j6 |

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

" i1 O9 Q) R0 q5 Z

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

6 ]% x. r& P) W( E/ S6 N5 D
from sklearn.preprocessing import MinMaxScaler ; g3 a* ], D6 T, \7 n + ?9 C% _$ d/ C n/ b0 ~, C def mm():. V) X2 O9 r2 J$ O1 j """8 h' X3 `8 T; D ^6 s; J 归一化处理- u) b# G8 }' F& u7 c* g/ O """ 1 ^1 q! t3 W( @ y # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 - E, T5 E, c/ S% d; p* j6 I mm = MinMaxScaler(feature_range=(2, 3)) 0 N. M; S1 E3 H( T8 Z2 @ $ q' H( }9 w. w& [3 q% V data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])3 ?% _+ i/ i: p, L+ } f Y1 ?! d( p) l, o) f print(data)0 f, P3 \, h' z2 t* c* M # R/ K$ x+ H+ c return None 7 f; P! [, T1 {2 g" _3 R7 B: |$ P2 N7 j1 Q9 Q. F if __name__ == "__main__":5 X/ M" |# e: J f- b mm()# @' [% g i$ @0 P
% b" C' f) F1 Z! g

数据标准化

/ D' ~, _( j" i& q+ I G$ i

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

, V6 v7 S& e+ r- L
from sklearn.preprocessing import StandardScaler3 n4 `8 f+ H4 l. o6 c# ~5 g: O: J : `$ f& h' L' j6 B! P0 e" @ # x = x-mean/γ mean:平均值 γ:标准差 ) y% A; u( Y5 Z; C& @9 R1 G # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 $ \2 O6 n0 I; h. R # 优点,不易受异常数据印象$ a( g! f* Y& g$ V / d5 d% c+ g( ]! N! q$ X5 p- g% t # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响: S4 Q! L, e9 @" o) m def stand(): 5 ` @$ F' g1 V- _4 ]4 ~ """' r. {6 U& h& k' L; \% T 标准化缩放 2 f6 _8 T# s3 x" D5 g7 q( p """ ; C# M+ h: c, }( x3 U" D/ H" _2 d std = StandardScaler() ! T! @5 }) m$ v U 1 b; W$ N, W1 Z4 B0 T0 v) t1 g' F pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]8 h. P3 K2 }) a" G% I, v2 ~ 8 z; w- W2 b8 k( r' S3 r( F9 k data = std.fit_transform(pre_data)# U' A; t( b( Y( X6 b print((1000-2000))3 _: }9 B6 h m' @' O print(pre_data)# {* L. X5 t, M0 U" b print(data) 7 k1 S6 ?" o. |9 Q. a* a3 f& w. x- k* N+ A' o; I# L8 |7 W9 t return None % }, Y; q0 @' Z! g8 S9 O6 s2 t6 `, n1 ~- s7 y" S if __name__ == "__main__":9 R2 v4 G3 b0 F7 w; o8 u/ | stand()7 _3 T- L# N5 h* k+ R8 V$ N
* A: C) b/ p& L( O* `; u

下一期讲一讲特征工程

0 E) S. l8 z. V

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

6 Z6 i& k0 j! r: J) C- t9 k7 h
; Y( f/ Z* G) Q7 K& ? 2 }8 d) O% A% g$ _, ]# U A/ Z% _3 {2 W9 R3 Y2 [, n8 Y3 j5 k, l7 z ; t1 c) i2 G4 a6 [7 x
回复

举报 使用道具

相关帖子

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