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

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

[复制链接]
, T5 V: G+ f" ~
# j4 @1 x9 G" {/ h/ ~9 Z/ R

铁甲将军夜渡关

5 X6 i; n: a4 W/ ?4 d* [4 w. A: p

朝臣带漏五更寒

% M4 \5 ]' [* d; ^0 i) k# K) Q

山寺日高僧未起

0 z$ ~+ v: ~1 E, ^ N4 q! Q/ f0 r

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

4 M% d6 F. d. }. X- w) |

一周没有更新了【吃瓜】

5 B+ p$ w7 M8 {7 q8 J, M

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

! W$ w) q" k# l; R' o

/ i9 G, [( J! \

都忙

8 l% B) a2 Z3 @. r

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

4 p! q; {" M. Y
! }: \, ? V- I

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

' ~4 ]! f$ @- A2 Y( `; x! v

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

0 e. n3 T8 [3 f* F, E" I

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

. k; ?0 P+ U) c) f; K

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

" n4 I( {; K: ~

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

7 h3 b0 Y9 Y( [4 U/ q2 t' e" S8 i3 `

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

7 W, x9 w( k7 L& N

数据预处理(无量纲化

/ @! r' c$ x; M( u

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

2 b: j+ B. X3 o7 X0 W( D

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

. B; s0 p% y, W0 e- l- w# F

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

6 q0 f) A, W# M1 n" X4 [

这会放大温度的影响效果

( q$ G. s# R$ r( y) A# j) ]; g7 D) b

数据归一化

/ ?( V+ e; |/ s8 l3 C8 k, d+ _

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

# e. i A7 `8 `' M3 m- j) p A

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

. F4 o& H l! j) \

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

9 _, q; u# D2 s
from sklearn.preprocessing import MinMaxScaler, S% b3 S% n: {$ v& g$ c$ U' B: K' ^ ( M) p! }8 c; ?/ j def mm(): {$ P6 }0 h$ h# \; A% z7 p9 o """) @, M: P# o. d! g0 S$ E" Y0 k4 a 归一化处理2 `" U7 N0 w8 @9 t. \5 p, s """* P( G9 L& Z- w8 r8 f # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1# t. b8 t* p# `1 p" h' B mm = MinMaxScaler(feature_range=(2, 3)) ' }) k% X: p. V2 Q- @, [ 1 `7 u5 r6 Z) s& C6 g data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])* v5 g4 B6 ^+ v, E! \ 6 U! v; k1 L8 g print(data), j F( n7 h/ n# K7 I3 P l/ O6 H/ V- o' I return None& Q$ M6 H# B" s: Q i: | v " i# ~5 `! q' p1 r, I; {5 _ if __name__ == "__main__":6 @5 w) Z5 O8 V# b6 G8 O( N mm()) }% `1 _( M& d1 Y: l9 C, y
& p8 T" ]: f: z/ f) ^# Y6 y

数据标准化

1 b; {7 y9 ^6 @3 g1 H: a9 Q, ~

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

- a$ f6 t: v! M1 L
from sklearn.preprocessing import StandardScaler' V7 k( b0 s' W0 O/ U" c ; w4 B9 e: |, _- Y2 A9 @7 e # x = x-mean/γ mean:平均值 γ:标准差 1 Y$ `8 N: A2 @, U9 a6 q' Q% N # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号) M+ s$ ^) j. A% L7 V+ H # 优点,不易受异常数据印象 ; ^: M( N1 p2 E - i+ y" k/ \9 [- W- N3 n # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响6 p- a( F5 o7 j& @. A V7 h+ d def stand(): * k0 J: \4 |( n8 r3 w """ 9 g* A: `) w9 [8 i; p 标准化缩放7 q* [& J7 ]& }% b2 C( }* s """+ ^* Y. k* S3 [' e/ T7 ^ std = StandardScaler() / g# }+ z# u+ G n/ O. ]5 W ` P; A$ R' p pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]], U+ L8 Y# N+ b8 I6 m * I5 f, A! V3 t+ Y data = std.fit_transform(pre_data)8 I* k! r9 u; A- N print((1000-2000)) p, l/ _3 B4 g' g3 G1 E; M) C# L print(pre_data)6 y! I& l2 E3 X6 ^- Q+ N+ [ print(data)8 t) F9 f7 e! q, o* j; K . o1 T3 N% o1 I' m3 c return None 3 t& O% Z% `% e! Y) v3 z+ m5 j8 @( Q& k& Q7 p5 A if __name__ == "__main__":$ W3 e( z( `' d9 W9 C. L; e stand() 4 ?8 w4 }7 h! U
9 C! n+ @2 O1 j

下一期讲一讲特征工程

% z" w B% c% x" k/ b

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

5 s1 ?4 v# C3 g, K- N
" f j* |6 I3 f+ j " R: _- Z6 p9 N8 ~1 e! P7 q+ \7 |4 v* m, I , K) [7 d$ Y/ W9 A* ]5 u# _9 K ( p2 Y: R- h# S5 M; Q9 [+ K* a2 x1 g
回复

举报 使用道具

相关帖子

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