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

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

[复制链接]
! x) e) v- n" G% w8 s
6 F" i6 d( I5 E: J& I. T! z. }$ i

铁甲将军夜渡关

2 n6 ?7 h* M% h" [

朝臣带漏五更寒

2 d/ J/ l1 c4 {' ]$ h2 u0 K% L# N) K1 E" q

山寺日高僧未起

* ^1 y# j: ]/ Y. j3 o: i

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

- E* R& s! |9 t% B+ U! ?8 E- }& {' @

一周没有更新了【吃瓜】

, ?/ M2 k& q: w+ \; s Y6 y$ G8 F

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

0 M9 y A9 f; A2 @; o

& W) q0 X' Q ?; Y; |% J: F

都忙

+ K$ e9 v5 f; r% _ M

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

8 m1 q9 `7 T' ?0 m: V- s. }& ?( I
- @2 O: Z; Q& ?1 p0 k+ u! W8 G

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

8 n5 I# c$ L. N0 u. l) H% N, }

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

$ N2 p4 U5 R/ k0 B9 G7 Q

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

: s% K7 H. k* h. t

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

7 N8 S3 C6 c8 o* l5 s3 K: Y

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

* l+ j* Y+ `" e: n i& D: ]

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

$ `# h9 O; g- @* ]# ^

数据预处理(无量纲化

! f8 {2 J* v5 T) Q9 D: n

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

4 \6 m# Q+ `. q4 ]% ~6 ^

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

# A) [" a. `& p* J9 P! b V

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

$ Z5 O! H8 S* x. S

这会放大温度的影响效果

4 y- L- f5 K4 S1 F( H0 z

数据归一化

7 }9 G" S/ R( J

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

4 ?- X% r4 l. V/ x+ E7 S

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

% w ]4 }. d" S* e

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

- }& Q0 w* m2 I& b! V
from sklearn.preprocessing import MinMaxScaler3 J% T' B& I+ `& I . o4 ?) O. r/ I L! X# N) r. }& h def mm(): 8 B f, }5 n9 O5 x/ ^! I5 D3 ] """- u2 @/ z: i" u5 ` 归一化处理, v; H3 z1 X2 `( Z( a4 D """, |0 ~& s8 T% n$ _) |( x # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,17 i; m, H, l3 z1 K( i mm = MinMaxScaler(feature_range=(2, 3))1 M- r, E* r6 h; o( U H& p6 ^0 C4 p8 z! k/ R1 z) `% a data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) $ Q4 d# b1 R1 ^$ i4 w* D' V- W: g print(data) $ R/ B/ U, l1 S+ |. p/ |5 B4 r1 G! I4 R return None7 E% D0 B3 u0 m- S; C' t# x; L' t% u 6 s) \. M3 q5 Z" h. e if __name__ == "__main__": 9 q/ A5 R' N5 E( } mm() , m. A0 B' l4 Y0 w7 Z/ V
/ `# w1 v3 \& T% t

数据标准化

# p: [3 F: [4 e" z# G6 `! C

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

6 I; A/ @5 |+ ~/ m5 J n
from sklearn.preprocessing import StandardScaler 0 c7 o" o9 K1 m0 f+ g" Y( G! _5 W) w( V7 U [ # x = x-mean/γ mean:平均值 γ:标准差 . C" f4 x' D* K& J # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 5 I' M8 L D" f' e2 E& _. G6 K # 优点,不易受异常数据印象3 s/ {8 a% q0 w 0 y' i; i4 K) ^$ E # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响9 y A' i4 M/ ~( R def stand(): & \$ v( M B/ d """: D$ O4 |2 m2 X; o 标准化缩放 . H2 }9 R9 o7 i2 r9 E """ 6 [2 @- Z( J, m2 U# S5 q# a std = StandardScaler() Q5 `2 O% n6 Y1 L" f! [ 3 [0 Y& Z" @3 P1 h0 b& q: h pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] + u! f6 s. ]' Y# q! y. |0 e8 Y ( M# F8 C9 j0 P data = std.fit_transform(pre_data) * A. ~9 B% T/ f5 g print((1000-2000)) 4 s/ t" u9 q. x9 T9 e print(pre_data)" ]; j" B" k2 K0 q" q print(data) : e0 ^4 U# a6 \. ~7 n. `6 U# L. T4 l% ?+ }2 _+ K return None 7 r4 X+ ] P" Y8 U9 X8 E6 @- H/ Q. b3 S) _ if __name__ == "__main__": % G$ I- S4 ^% T3 n/ R: Z* z stand()( @& l. E6 Q9 a# U/ ^: [$ f
0 ^* }( ?& I8 j* H8 `

下一期讲一讲特征工程

1 t& x& ]5 E& K! M0 J# l, y, l' U

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

& W* O& l" ]4 y0 X* c. o @
" T, b7 Q( j$ t5 |8 V$ a+ T! ~6 Q# f& l# r ! h: [, M% T+ n7 I$ t7 r8 o/ |+ b1 ^9 X D. @ g ( u$ `1 i, J0 m
回复

举报 使用道具

相关帖子

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