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

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

[复制链接]
; [/ ]. {' m! Q7 g
% q2 k' f+ R: ^! f5 B

铁甲将军夜渡关

8 [; c5 [! s- l( ~, K

朝臣带漏五更寒

2 l$ R$ o' [/ ^1 K6 [( p, @2 D

山寺日高僧未起

4 O# j" r6 n3 t: J! H

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

$ R# I b" C+ G& D3 H B% T# @

一周没有更新了【吃瓜】

, S( K4 U$ c! G7 r: u2 ^

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

0 w$ h4 O0 Z0 n5 h

+ P, I* r2 H- b/ ?0 y2 e

都忙

7 d5 b$ s. |/ w* b7 h. L. ~

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

' c/ R9 U( \8 Z) I5 @# H3 L
7 A5 K L& X" g0 c$ N3 @

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

. E M7 Y7 `4 z3 F) n' W9 I

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

' _$ i# L( M( i$ t3 ~9 x) h8 y

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

! Z1 y+ C9 W% H" Q, Y+ t

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

4 D- Z l! C7 Z) ?% y2 a. B: M2 w( i

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

. x& c" B! G) |+ Y3 m; ]2 z

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

, D! s5 L/ d/ Y+ X) y

数据预处理(无量纲化

+ ~0 J& D! N/ {- Y+ ^

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

' o* I4 d+ u: j

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

) E! O, ?8 ^6 L1 O

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

& K$ `1 K# ^- b) ?2 J1 O. O. c1 x7 m

这会放大温度的影响效果

4 M, J6 b5 b4 q/ R# ~: t

数据归一化

1 W0 S3 a6 Z* J3 @7 l* _6 ]4 I, _

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

7 f+ J% O: D- d& a; Y

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

9 y( M# Y8 n5 e+ Q' l8 Q

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

5 E+ L, @' N3 ^
from sklearn.preprocessing import MinMaxScaler; S% m1 ]/ k5 M0 h/ L7 F! Y ' w! f* X, U Q$ f7 Q" k def mm():8 q' _+ x3 s; S/ G( X6 q """ % x% k% K3 o- k+ w/ u 归一化处理 ! Z: V' f% r8 @$ u """/ x% c7 }; p- W1 N% ? # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,18 ^1 i4 }) t9 _) D6 u9 [+ p mm = MinMaxScaler(feature_range=(2, 3)) " o% H0 E) ]; V$ F/ }3 } : f( x7 ]7 a$ m W- n6 ?6 t( v data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) : ^1 x. A0 I% V+ _3 K$ m! D. \6 F$ @% d3 g print(data) f* x# R( W0 m$ l0 Q t' ?- Q 7 Z1 g- d Z6 e& u" j return None& J/ V2 c1 f' k9 T* _1 P7 |9 Y8 U# s 5 p' o4 @- y B3 V if __name__ == "__main__": - w }" X" F" n& L4 O mm()9 E! D. @7 v v
- B9 Q$ D0 _- A* y, X6 N+ ?- R

数据标准化

6 s6 z- W" d0 W3 x ]9 v9 {* `9 v# o

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

$ V5 p8 b5 R5 d( W
from sklearn.preprocessing import StandardScaler- R/ n; J! N- g: \& ~6 ^1 O * _1 ?5 v! Y$ [% H" \" y& v # x = x-mean/γ mean:平均值 γ:标准差. J+ p" }8 t4 M- ^/ F: k. y8 `9 ~ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号+ p, F1 u/ M1 A ^5 S # 优点,不易受异常数据印象 % j- j7 V; j$ E4 l : o1 B6 L3 d- i- d; z # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 $ l5 d0 Y3 `+ P! S* B def stand(): ; D7 A. s( T6 n# [ """- m4 E5 j) Z: u: L) \5 J6 l 标准化缩放 - r4 M+ P9 U5 W' v+ b& v """ ( U2 M3 X' W# J# e4 C std = StandardScaler() & O( A2 m5 G( H" R ' i' Z$ `+ g2 g, n& I1 Q+ s- ]3 C pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] " j* ]: C& L3 h6 |. i b7 f 6 N7 r* X# @* w6 `: E data = std.fit_transform(pre_data) 6 [5 D8 c; g' ^) E- g7 O print((1000-2000)) 1 [. ~$ ]3 q5 l# ?9 X% K print(pre_data)8 @: |5 v3 @! R% i7 Z print(data) ; d1 U* P5 T. i6 J" x+ ? + v5 s* a$ \. Q, d! z return None6 k- b( y. u9 m / M0 f! `0 A3 x( k4 A8 b& i( ]! B if __name__ == "__main__": / U! S0 ~2 U& d; d$ v# H6 Z, Y stand() 8 X1 A; X9 g3 f' \) t( n
& _, Y# C; \5 R

下一期讲一讲特征工程

) Z! |9 @- q, T5 Y" z+ g9 L

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

) ~7 p+ A8 Q' k9 C; H
( [- T# }8 s j; j. R1 } ( [" J# s& F4 L+ r ! G" S0 d. D* k* G' U t7 e) q& O+ r2 p8 H) c + r" P4 r: L" L0 U+ _7 ]
回复

举报 使用道具

相关帖子

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