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

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

[复制链接]
" ?5 S P$ S( K8 v& |4 u- F
* x- h" D( |& q( D ~! k, h- N) h, l

铁甲将军夜渡关

' z r2 X5 ^" r. S5 e% N" C

朝臣带漏五更寒

/ { A* q2 j7 h, I

山寺日高僧未起

9 Q1 i/ d& x) f* m2 p" C! Y; j

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

7 r5 k8 s4 W$ s. ^) \

一周没有更新了【吃瓜】

4 n/ b, g; ~ I% I! ~

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

9 N; R* v. ^, T/ c

9 P( X* b: k! l' }

都忙

: O% z) j j' L& n' ~( U

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

7 | |; y0 |4 }! Y. `( y
4 e6 I* A( }& a

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

' w/ B. H& ~3 H7 g& [

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

K4 Y2 N1 k) F: z# }

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

( A4 z5 K5 S1 T( D+ Q

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

$ O y# [! |5 G1 B9 d

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

. h: c0 {- ^ N k; H. ]

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

4 z, L5 w3 {& T+ [: M5 \

数据预处理(无量纲化

' @4 |, t0 Q9 s. v2 l0 o& a. ~

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

5 `( Z& @' }% w) n4 `

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

; f0 D8 E; _# w3 Z O% ]7 M1 \

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

7 w' K5 B3 B% t# n3 _. ^ ^

这会放大温度的影响效果

3 f3 H P# ]/ @, s# f q

数据归一化

' f( J4 E/ x- s. Z' H( x

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

- D6 i) y0 h6 t& i6 K% R; o @

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

5 A; [- Y6 R& Z

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

) e5 G1 T+ u. n I# L E! S
from sklearn.preprocessing import MinMaxScaler 4 V2 v* h( k2 S% b" l$ f- v+ c$ [- a: E' i8 ?& ~3 f" K: [ def mm():$ ^# S: ~$ r7 M """ * ]9 G7 }( M$ F, _8 L 归一化处理, V7 `9 z- ~5 v0 O! T """ 6 {& w; o& L0 X # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1: [9 Y3 Y% @- G0 h( v mm = MinMaxScaler(feature_range=(2, 3)) & A4 n. @5 o T. ^* {6 J 9 B& [2 X0 Z" v: ~ data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])7 ?( I$ A2 q8 G 4 @* M' {& W0 l( ^1 { A print(data); [3 L( j5 x$ a: L, r9 X 6 _0 e6 I- g- K2 h3 m& v, F" T return None1 ~, f* ?& t* E' U; T1 R 0 w7 Q4 l! f8 o- @6 r6 x9 s if __name__ == "__main__":. W. T- N' S( }( S9 P% M mm() " x) N1 O9 W( h0 N$ ]
/ }# I1 o' |$ _; s8 t V0 X

数据标准化

& n8 Q& \8 D2 Y

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

( ?" _: T5 s3 W8 N: M
from sklearn.preprocessing import StandardScaler , g+ }( U4 R0 {$ c5 x. L+ C # ]1 L5 ~' ^" `& K# F: y8 i # x = x-mean/γ mean:平均值 γ:标准差 l. \: q1 {( J) V # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 # H& D1 F+ Q$ e; N, ~! @! ~4 M1 L # 优点,不易受异常数据印象 5 [; i4 [" s. _! Q @2 k - z: _+ J' F% `2 Z5 i* |+ \! @- { # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 & O& n2 p m. i3 @ def stand(): 3 a* v2 ]6 a2 O """ / t* [* H) e& U& a& u' \ 标准化缩放+ k' J' q( S3 l2 L' l """ ?5 P% N+ W& W5 v. ]! k) V std = StandardScaler() 9 k3 a {) Y6 i' c3 ~2 y* P8 Y e I, Q- V' U" t pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]: f4 H( a Y% l6 ?, \ " I0 l Y+ q" c. G data = std.fit_transform(pre_data)* v( s, Y! g4 [. j! |. ^# { print((1000-2000)) $ G' T( w4 g% {% \7 h- B. ^6 L print(pre_data)9 ]7 {9 I+ _: _/ H# F1 N! K0 s print(data)3 N& P4 r, t4 H: I! u' H5 n" c5 G 3 _, w% c0 b2 |' }% [8 N7 `' E return None g3 d3 ^5 I5 t; O% o% { : l+ L1 z/ b+ k4 k! z7 H( L if __name__ == "__main__": , N; R f; `7 u' y stand() % \) {2 S7 t! _! I: u& U' h
! V8 h: b7 C! z4 u* u9 Y) e( A, [

下一期讲一讲特征工程

; G; i+ {7 U$ V; G

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

4 W: I; |* T9 C
# W# G! d1 H) x- \. q: D- { & L* c/ c# j8 I/ {9 n/ w 2 e) b9 X8 L) o0 ^+ X" w) o: a; o* {$ I; K" @+ r 4 j$ x. J: y& g! }' U: E
回复

举报 使用道具

相关帖子

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