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

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

[复制链接]
" k% J; H' d9 G' _0 ~9 W
8 C1 @% P8 k0 N. W" h

铁甲将军夜渡关

, ^& h$ R A6 N- y+ J

朝臣带漏五更寒

7 |( g v3 x' Q2 Y6 |$ i8 I

山寺日高僧未起

. ^, l* \( H: Y1 z

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

- g# s- b" r( T' p* A# g/ Q

一周没有更新了【吃瓜】

' t/ P& i8 o7 U5 j5 a4 ]" c

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

) m# x5 ?: R( w5 R. W5 ^1 X8 ^

9 o, L7 x# |3 ]" J1 z2 |

都忙

0 M) ?; n/ d! Y+ |

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

: I# F7 {. F) V6 A
( n. y: [/ s" _0 @+ M

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

. D# l6 b: p" G" d- o

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

& o. n& G& h2 g' ^5 |, A

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

2 b; A3 Y/ d$ v" ?

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

$ P2 f: m3 I5 }+ |! X) A

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

1 g% x: h4 O) N4 |+ T

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

0 w* u" C+ m5 V8 A: r

数据预处理(无量纲化

+ q( @1 N$ D/ Q* U. I

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

# B+ k# A- C9 Y0 w

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

2 i9 v* k! s8 W5 h

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

7 ?8 [; j+ Q E, X y, m2 S

这会放大温度的影响效果

6 x9 ~8 _" a/ H2 x m6 F

数据归一化

6 ^) `! d) X( v; A! J

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

/ p: i. D3 W& x- k' l/ i

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

. c9 \/ S. Q$ R( Z/ }

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

& R: u. y9 v4 ^) A; m
from sklearn.preprocessing import MinMaxScaler , n2 K3 Q# A n8 C# N # E' [$ _, v8 o; P* j) j8 _ def mm(): 2 q% ]* }8 [* E0 O """# H* P ?+ |7 n 归一化处理5 L, d3 C! G0 H: p# C1 | """ ( |2 n+ z. R( ~$ D # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 + F# N1 F- t5 U4 c* k% o mm = MinMaxScaler(feature_range=(2, 3)) 7 Q4 l. u7 t- x' p+ D0 `$ C* \& L; H% g data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])7 k8 d( n. [/ i3 | # n) w# \2 R+ e print(data) / r: w3 G* |' n1 B# ? # Y$ w6 K7 H; L return None: B4 U9 q2 w N8 v6 ~/ ?( V* k + o. u1 ~0 j- R& I2 m$ F' R# v if __name__ == "__main__": & N& L( D8 `( A0 T mm() . N! L( `# R5 W( d }' H: H
, P+ |9 C1 u! j( ~% {

数据标准化

" W% N& c5 p' H% R9 x! o

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

3 K! Z4 F9 a5 \9 R
from sklearn.preprocessing import StandardScaler8 d: q3 `# D# G6 P& P' s 6 \/ C3 v. W, V& n0 T7 {. W/ H6 j* h # x = x-mean/γ mean:平均值 γ:标准差/ e4 ?1 z$ M' {4 }4 ]8 T # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 6 J; Z( d1 F. b4 j" H& ~ o6 n # 优点,不易受异常数据印象 # y; B" q6 D' ?% y; W9 n& V; \0 x # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 0 [- h" B# R. Z4 K def stand():6 }6 w# K- g5 ?0 B9 A """& O8 o4 A$ a/ R1 I- r 标准化缩放 + ~7 f; R! H/ n8 ~ """# J2 O7 X& `- M& \3 c: q( S- p; E std = StandardScaler()- A1 h- d# E& d8 A! o% w * t& W! N- i$ h+ X pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] * {2 z" P: [1 g+ a; [& M 4 W* w' r: F9 f5 v! @. f data = std.fit_transform(pre_data)$ u. }( J7 D1 A m" ^ print((1000-2000)) , ^' l$ ~" u8 s% p( Y+ e print(pre_data)/ i6 D; T# m6 g: m/ r print(data)+ t' @/ T2 Y) [ ]9 p & E5 A) \8 T2 @/ ?+ _1 v return None 2 Z# f5 i! }- R# F' _1 Y ; a7 c9 A! \" n0 o, u3 w if __name__ == "__main__": 1 j7 m6 ~* D3 L0 I" [" d0 { stand() 7 G1 ^/ A) f/ D1 r
1 J1 y: t) Y# b: [, [# {

下一期讲一讲特征工程

- Z7 d" w, F1 Y5 c

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

. L% Q* m I; m2 y
) _" M" Z2 B9 O) M5 Z* _! j( P1 I! S) m! C. ?* s 2 Z1 Z! `& n' P5 o& L! E& W' z* ]8 Z( a2 B. l * ?8 A# L. m8 @3 X
回复

举报 使用道具

相关帖子

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