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

[复制链接]
2 h. b' O# f- z( ?) Y o
6 b1 u4 d6 v# T" R7 U) H

铁甲将军夜渡关

- b' [8 }# h2 T2 q% w! f4 Q

朝臣带漏五更寒

! O$ x, [0 G' u4 t3 S$ @5 d$ L

山寺日高僧未起

% I! L9 S# Q" g, K9 y! d

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

0 Q) G J U: O6 E. }

一周没有更新了【吃瓜】

* `8 P- R5 h* n

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

M$ G* `/ B5 E) b) }

( {1 t, B; }* |: n

都忙

; U# p2 x; }9 n; |: O W% m

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

+ U% L4 D- j, B! v [
9 r% c% \; C) Z

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

2 i( X8 l. n/ y8 c4 d8 O' m- d

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

t# ~& x6 C- G9 [2 ~& S7 k

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

% B8 ^$ D' Z. d( M

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

" D4 E$ I7 @7 x$ \) f1 r

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

& R7 V4 W/ p' G- y

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

8 i/ ?9 ]2 H8 }; j9 Q* r/ q

数据预处理(无量纲化

5 w1 P9 Y( A, Z% ?! }, @

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

$ a5 g. y+ H+ K6 j

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

1 z8 ^( Q+ |2 ]8 ~9 y3 a. t

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

+ M) X0 n0 l$ B( h- n& }$ d

这会放大温度的影响效果

5 M* ~0 O- I e2 p% {" b

数据归一化

; n" U+ Q4 m' L2 j( @2 U

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

7 n. k# L- q: ^

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

`! [: N5 D. w" B. X

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

0 `' |: m& ?, M4 F" ~( J
from sklearn.preprocessing import MinMaxScaler( c8 w; w% s# R8 M/ U : [7 B1 [) _( t# y$ ?0 N$ d9 g5 [ def mm():0 e. N" g* v" V* }; f- Y """ 1 u1 u( m0 q$ j v' q2 T* p- U 归一化处理! R- I8 l- g2 J6 n7 p) l """5 ~" H" ~1 _' `/ n4 n1 P, a # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 7 Q; n1 G" N9 `6 s mm = MinMaxScaler(feature_range=(2, 3)), x+ T* h7 b# C! H ' n9 s+ I- K* r. s3 D+ L data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])) _: }& J8 I, v8 b q; V 4 F" x* h: F/ a& u print(data) : b+ ]$ R g. v/ D4 j 4 d, j0 U0 C7 ]8 Q* h3 b return None 1 I! ] n3 k7 T5 z9 x j . I- Y4 E+ T# n- k5 v) j if __name__ == "__main__": & H$ B. r0 H( Y) p* T mm()8 h5 n0 c- F2 j4 [* M( V
; `6 Z5 ? P5 l1 y

数据标准化

2 p7 }+ x! l4 ]- C9 L

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

5 a, _6 T- r* {" Y
from sklearn.preprocessing import StandardScaler6 S! i7 c" u4 X$ q; \- J! H+ {) N 0 n. }+ w/ X8 S3 N) P K2 G # x = x-mean/γ mean:平均值 γ:标准差& Q# ]" f9 B4 H0 a5 J # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号7 X2 \7 d* m8 z3 W! } # 优点,不易受异常数据印象 3 T A& Y0 S, e- N& V0 F) Z: T 4 [0 u1 b$ N) g! H; C # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 " d5 {2 `: K0 j D6 m* q def stand():/ P3 q& F& A7 p, p' k- ?$ ^ """ 2 \ t5 b( j- v% E 标准化缩放. v$ W! f1 r% f7 ]( c """ i4 ^" Q ~& v" w9 h std = StandardScaler()+ v3 k& ~1 O; @1 V! U7 P : h* ~. Z d. p pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] : q; A! s; g) d' w% q" u7 K8 X# {0 x. N0 ^ data = std.fit_transform(pre_data) ; ?+ \3 D0 m( b print((1000-2000))( w/ x. {* C- w4 J/ X, Y print(pre_data) - t7 Y# o8 J; l* I print(data) $ \8 ?6 y' A/ F3 d0 E) ~0 @- }" d9 u. {& M, W5 f0 k return None + \! k+ A* R( G8 ~, h* z+ A4 h- @ % {+ C y2 Y3 k. w3 Q if __name__ == "__main__": % N/ J/ ]5 E" I J- v" b stand()% D4 A j: `# B4 e
( g" X0 a; E4 R7 m. i

下一期讲一讲特征工程

7 ?* O p, O/ ^

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

3 H! i3 k0 D( D7 R+ Y5 r, l
0 f- ]3 y' M8 j3 V ; M9 H$ B7 G$ |1 W3 y1 } 3 J' Z- F- r% d! O6 t9 r 7 j! b7 D1 W F) V* O % q7 E" ?6 i$ ^0 _" k
回复

举报 使用道具

相关帖子

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