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

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

[复制链接]
! P, v* e& F6 D; b$ F& H& L
0 i# q$ S" {! |) L$ A; a0 Q

铁甲将军夜渡关

w* H) L W! h% w. u4 o8 B; b

朝臣带漏五更寒

, M: d/ R4 V) N$ B* W) i

山寺日高僧未起

1 K# I. { y$ j" M7 S# ~

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

@0 q, Y9 v y) i

一周没有更新了【吃瓜】

( q7 G) l% g' r' |1 v* j

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

* s& f9 }3 \2 m: l

( B$ y4 G- f) g6 k& J- Y

都忙

% o. j6 U8 u' e, k% h- T1 W' ~

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

5 W+ p# c* q, K
) C/ [! q) j5 k! @# I

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

; \) C* Q: T/ ?( {

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

0 r$ l& e8 T- |5 I! `

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

8 ?5 |# ] i/ h

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

& P+ {$ G* b$ E& N' C* p& v" ?6 Q

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

( v& [& Y, o6 V) E

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

# I$ c* c. F+ N; L6 M+ ?3 \: _

数据预处理(无量纲化

# `3 Z. Y6 h- _: ^3 ?" b1 a! @* d

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

7 H8 A8 A9 ~( h- J& N! o& A6 E

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

" @8 j! k8 k! c# I

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

m" y/ q* q( n/ E

这会放大温度的影响效果

. x* T8 i, K% \

数据归一化

% J4 q1 i# H0 s% z, w

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

( p E3 G1 N0 Z& k( j9 G

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

$ y5 f; s4 G# c3 _

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

. t& V! F8 a8 R2 f7 l
from sklearn.preprocessing import MinMaxScaler : ?0 F _; j# B 7 ?9 R# w( T% y& E" \6 x7 D t def mm(): ' s/ X0 H4 r8 L3 A$ D """ & D; M8 h, d/ L }7 ]2 d 归一化处理 $ u2 l" j& m* v4 n1 ^% E """7 O7 f. \ I0 n3 [ # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 ! {" S/ h6 u; d# t7 ^8 M/ W3 ?* F mm = MinMaxScaler(feature_range=(2, 3)) 0 L3 Y& ?- {' d0 w0 B1 G4 h + X6 }/ \3 |! y% l C data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])# Z: F1 d. c- `& e3 L . ^) \5 b$ X. w: B0 Q, } print(data)' G* z5 _) ?5 v; M0 L9 p, W4 E 3 N2 @/ X2 R' ?, F# F8 g3 F return None5 \9 h1 U, h3 T4 y . K. ?: c& t* U; |. e2 m if __name__ == "__main__": ) r5 P% G8 ^7 G/ S7 M: E( N) ^ mm() 4 \* t1 S' x* @, n7 y. l3 H) P* ?* Y
) B9 B" m$ E( s- p

数据标准化

9 ^3 ~3 x9 U" V1 z8 T$ D# i

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

1 x1 X$ r& T6 O$ F; U+ l& [$ r. V7 b
from sklearn.preprocessing import StandardScaler; z8 h7 @8 V( E7 T ' ?; O) o3 f5 r # x = x-mean/γ mean:平均值 γ:标准差 . g, T3 J& U) A( R # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号! v* P9 R, L# h5 W( O$ P/ t8 X3 N # 优点,不易受异常数据印象 3 [9 ` } Q- A4 u! `5 W; i / R3 d4 t; _5 n; X" Q6 \$ I/ `* h # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 / D& T0 _5 S& E( X4 j5 l, K: | def stand():' z& q) L% Z% Q; `. Q( z g2 u/ Z """! h/ A& K. K2 M$ `4 } {& J 标准化缩放1 z8 u% l4 I: G: E" I. g """9 L8 K+ d' }' N, ~( ^1 t std = StandardScaler() 9 [5 x, e8 A( u8 c; t4 f- q5 U5 v A& w8 r pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] ; I' S. [2 s- B# c1 K: u4 S4 b5 g2 j1 E data = std.fit_transform(pre_data) 8 Z: F! s' n9 k4 b print((1000-2000))9 G6 z$ ]. D% A, \ print(pre_data) 1 b6 B6 x7 l" u: g" l print(data) - T( n/ U1 y! V2 {/ n, Q( @* \6 x% ]/ c1 N9 W1 \' I return None # m; p# R4 d$ [3 a* D& P; {: T; i6 [. b" e if __name__ == "__main__": 0 i$ I. @' g# J; I, _* o stand() 1 `; Y& N3 j! L. S8 m# k
4 _0 v) w9 y& r9 g" r4 o

下一期讲一讲特征工程

1 f+ G) m/ q6 L+ x+ `0 U

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

/ g: p3 [- x" w8 T' O
; B- a' S/ z# [0 f# r% l . H- w! v# A7 d4 \/ H* o5 k/ h 3 H/ ?2 f: X7 @% o 9 b. N: J4 |% }" Z( { 3 d8 t* m7 S {3 o$ [
回复

举报 使用道具

相关帖子

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