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

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

[复制链接]
+ E7 v) B9 v1 T+ Q, [2 o2 B
. {' x$ }1 K( Z

铁甲将军夜渡关

/ h( g: k9 L% }- {& s& c& E

朝臣带漏五更寒

# z- j) V6 p$ n$ }3 {( s

山寺日高僧未起

. s; y: P( }1 b$ i" J9 u8 u. t

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

& l, {- {9 o# K) c! {" m

一周没有更新了【吃瓜】

5 Y6 G* w5 [" K

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

) p0 N0 e ~4 M' ]8 j

! |! {# j- K" i& q

都忙

% v! v% G# g( `$ n% Y4 M

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

. H; z5 x5 v6 Y4 B, _. @+ \
4 Q `: N: ^4 k! @% z E* [

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

+ i) y! H. D& \7 `( b, O

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

4 A8 S3 {+ Z. @. Y$ ^' c

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

, P0 u+ C# ^7 B- |9 S+ r7 R

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

`8 e' k4 j. j0 y9 a, [1 w

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

6 |4 l6 Y' ]3 o2 D- p

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

8 ~$ C+ d. l1 P6 O7 Z' Z" W

数据预处理(无量纲化

5 A: N2 ]' J2 i% }8 C

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

/ h1 Y( C) e# n" h

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

) T u( x/ R( W' W: T

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

w4 F; _; w; n$ B

这会放大温度的影响效果

2 h3 G5 s; h; _9 B! w$ {" t

数据归一化

5 J* k. L6 g: ^

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

! ` H8 I9 F. i+ v9 e8 X0 T

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

: }8 o: n" u, k/ f5 l( `& T

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

0 A# {! m6 a* G3 b2 A
from sklearn.preprocessing import MinMaxScaler/ l6 I0 W& {# D$ P% F; ? M 8 r7 Z* ~6 H) J! l9 d- D; z def mm(): 3 c3 X9 [- J5 M """" ^8 {* z$ S# V, Y$ |! O) A0 x' [ 归一化处理 ; h5 ~# j5 z1 F% y """+ D5 V: k s& J, X8 q# f # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 ( ?+ O T+ Z5 H7 B- V mm = MinMaxScaler(feature_range=(2, 3))# S0 R8 D* K4 ?2 Z& R1 e 1 D2 a" T7 L3 V* O o) H; i data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) . I% o# k1 I2 y" v/ C2 j& Q) b7 T: E& ? " L8 A |" Z# P! N print(data) # ~1 p( V' ^" K1 |7 H v9 r2 y$ [5 F& g( K' ]- m return None ' x4 w- o6 K$ T a) k3 u 1 ]5 R1 o; h4 m if __name__ == "__main__": 5 U/ r/ U- [3 R9 W4 Y3 F mm(). s) \: k! \% v8 J- n6 p
( Y6 u# U2 }) h$ b

数据标准化

$ P$ l: u: C+ ^1 _5 }$ R% Y! t

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

" \4 ?5 @' V7 d( X
from sklearn.preprocessing import StandardScaler8 P# x0 y4 K9 p/ a5 ?% } 6 V O! s/ Q: A7 a/ j6 V8 W1 t # x = x-mean/γ mean:平均值 γ:标准差 8 U+ h' V/ i! G( g3 V # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号9 l3 W' t: o3 U( ^ c # 优点,不易受异常数据印象 % f( T. ~- f( \% E : k% X. V% X# [+ O4 | # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响6 v+ z" L9 i# Z. j1 ~ def stand():' s. g& v% t, b! f% x """ $ l& |; Q4 y. D' F7 a 标准化缩放 ; h0 U! l- O& U """ ) L# t& L; }) V( K1 y std = StandardScaler(), X" v% d5 O0 }! r, c) h 0 R: e0 r6 }4 E1 _ Y6 Z$ C3 D- S1 T pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] ) [* v" N* F/ R( S9 r2 B1 N1 x; o+ c1 H8 V; _6 N3 J+ e data = std.fit_transform(pre_data)+ R) v0 j( k0 Z* a6 N+ m# s, I print((1000-2000)) * k3 B! K9 `/ I" {- | print(pre_data) 1 X' Y' `$ i: ] print(data). w& C( d7 b* K7 n% L 5 Q9 v. i2 P* V& S1 p return None4 J& ?, s* `) j 7 s7 w E" c# Q9 K6 a( m if __name__ == "__main__": 9 j1 ~2 b9 q1 a+ I( E3 [ @ stand() ( h% u+ h5 @' Y; H4 x! h# I
$ z' W8 D; d9 D# D3 Z! b

下一期讲一讲特征工程

; B8 \2 [/ _1 V

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

, R5 r; v1 J" K8 f7 |
0 P5 `. U, d2 }0 o ' V2 x/ A1 ?+ F: k% _& v l5 Y- K7 W; g/ |# O) o$ b8 J! U 9 ]8 G* a8 n. r7 N/ W7 } `7 \) P# M+ i4 {
回复

举报 使用道具

相关帖子

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