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

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

[复制链接]
" u4 |) f7 h* V& f
3 b: J0 l5 D) x( H

铁甲将军夜渡关

* B, g1 J2 [/ L& }# Q( l' [; C

朝臣带漏五更寒

$ a6 M/ L P( y2 r8 b

山寺日高僧未起

$ z/ ~; t% d( e4 B( ` g, p0 p

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

: m) _' n6 v- z. Z* f8 r6 x

一周没有更新了【吃瓜】

( J' z& w* U; L# M2 {2 ^8 D

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

/ h+ n, j* r* b) c: t

7 a" N6 g9 B8 r/ d

都忙

% }( W* M+ H! T' u a

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

A& k/ d7 {8 ]: L
- z6 X# s9 s; f+ w- T4 D! e

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

) t1 P6 q4 R Y: r s: p

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

' _1 |4 Z6 i" k, t q

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

$ G7 e( \* `: n( r+ O4 m; \8 g9 _+ ~

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

0 ], ^. `/ z+ U

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

9 v( R2 K2 ]( F3 m3 z+ |0 D

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

& |+ z1 O. H d* x) |

数据预处理(无量纲化

- P# [2 z8 R k- b O8 Q% {

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

$ `9 r9 Q% r; B) x9 ]/ [' b G- g

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

3 @9 s8 t' N5 D! v

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

4 |: o3 a! ~# ^) R6 A. E* k6 Q

这会放大温度的影响效果

- d, b, X+ B3 J# G5 c8 E

数据归一化

p7 g {+ e$ d7 t8 V5 d. c2 n

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

% O6 X3 Y7 c( U( `5 c

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

! p, [* g+ s+ ~, y

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

. ^2 i+ J0 u: m S( x8 A5 N
from sklearn.preprocessing import MinMaxScaler2 I2 q. ?5 y- l0 h , m( ~4 G- V$ s6 F def mm(): " ~8 @& P# G4 J! O- D& F; k """ 3 P+ w- f1 u+ x2 K3 A& p6 V 归一化处理 . r5 m+ M2 u* f* f' B6 [& D """ ! q: p: z, l/ M$ D$ n) l # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 w1 J9 P( c7 n0 G mm = MinMaxScaler(feature_range=(2, 3)); E( O" G' l. u4 i 0 ~8 |2 e6 i! Z) g4 b+ F |. F; ^ data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])$ l: A6 f1 P% n) r8 f# w7 N ( V1 @6 A" l8 m5 O1 y3 c. x print(data) 8 d+ n* G7 s4 F8 x% C1 G6 X5 C" s: j2 Q- y/ T, z8 i7 N6 b return None 0 B0 U" L# N+ U 2 \0 W* w/ f0 t# Z) `& U0 } if __name__ == "__main__": 9 Y3 x9 I, `! _. u, z mm(): M" I9 x3 P1 s$ j0 n% K
9 @* ~0 u: C# p+ d# b$ |$ [: L

数据标准化

6 a' \' Z. [+ L d: W+ Q8 h2 J5 I; \

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

7 o6 o! u( j: M- T
from sklearn.preprocessing import StandardScaler6 Z2 D6 p% m3 C . g0 _; ?7 e9 ^ # x = x-mean/γ mean:平均值 γ:标准差9 X( w) O$ x2 N' a # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号3 f/ F, y. ~# X5 q5 _9 f! ` # 优点,不易受异常数据印象 4 Q& R( U* X+ M* m, F' o 7 `6 u9 A4 S$ j0 u # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响/ G( i5 O) G$ B/ H def stand(): " r2 T3 t- D) W0 z& ]& s) P """ 7 |1 y2 [: H) E' ^) \4 a; ^ 标准化缩放# V$ M F# f' A- c. f' Y1 |2 L """& u. f8 ~* ~8 L7 B0 d/ H8 Z! \) J std = StandardScaler() $ r( s: x4 a9 ^' m# n . ?' x, U& a' M( w( }1 Y6 `' w pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]* `! e5 i9 @( [* T: h k% n/ a" R. m; \ data = std.fit_transform(pre_data) 6 R9 R0 l I/ r, p print((1000-2000))9 Q; |$ {% D8 h4 N2 l8 G print(pre_data) ; q% b, q* V1 p4 z0 W& t) O+ d print(data) 2 t" M% j# q+ q' R* Y& D, a, i) Z. u; w return None6 d8 H/ I7 m; N* T: T * H8 p7 a! A& i/ Y% r; O" w if __name__ == "__main__": % D C7 l$ f { stand(), ?0 }0 o& c7 v5 d: ?, b
0 X1 x) W$ B" P

下一期讲一讲特征工程

c- @, o) N! n/ }! z

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

5 C# C3 ~" ^1 l/ U3 |# R
. ?6 M2 n6 ^& n/ B {9 \6 I; X& z! N& d |9 z, W 1 @- ]" g3 u4 D/ a2 o% w; A! m/ ?: q& _4 k9 X3 G( e" W C 2 w, t6 g' o: n
回复

举报 使用道具

相关帖子

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