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

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

[复制链接]
, A$ t& ? S* m
4 K0 ^$ E* |+ n

铁甲将军夜渡关

/ W( v ]7 y K8 K8 q7 Y6 L

朝臣带漏五更寒

9 \' _* D5 @/ t

山寺日高僧未起

2 N8 T/ {- s' o

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

' c q# l$ N8 G/ q+ m

一周没有更新了【吃瓜】

' E, W" f& ?9 p

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

* q4 y) t, q* l: C

! F( ]- |; u7 E

都忙

7 ]: k% E4 f& J0 v& _/ X

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

! X# m, T: n A1 M% s5 h6 o: B
! v* v# J7 c5 N+ G) U

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

5 b6 [. W- r2 N% \! Y

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

% y: J! V7 ]. A8 V, x4 B

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

5 s1 u7 i3 y$ i: |$ d, S

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

_$ {* B) T e( \. h# \7 W

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

- K* @; m* ]$ E4 v9 F+ _

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

. J- R2 {3 _- p

数据预处理(无量纲化

) v8 p) `0 p2 O- |0 G

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

* k; [5 u7 E2 b* k

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

% X1 K! R. F' c% X/ @: p

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

6 k# t0 X8 V1 H# ^+ _

这会放大温度的影响效果

9 n- M2 _% Z$ X; _, o7 \& c" G) G

数据归一化

7 R3 u+ j) e) p

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

9 w+ `) w( T* [2 {0 N+ } f9 p! R

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

5 j1 u& i8 U6 v/ _& G. r

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

: S7 M$ B" R! A6 p5 q, Z
from sklearn.preprocessing import MinMaxScaler! k0 f1 B. u3 v: p! F4 b1 j* x * }3 C/ d+ ], `: Q7 \3 l def mm():: `* G7 ~4 j# Z """4 v/ x; h2 u2 G0 L 归一化处理3 h a8 y. D* F6 p) t) y """: X1 ~ [: `+ B" e' d # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1 - `/ v+ u; x2 X: ?" } mm = MinMaxScaler(feature_range=(2, 3)), J, S8 j- E& y- h$ H ; p0 @1 K( m4 `+ I# c% {9 F data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])5 H. m7 b" {( h6 o , l/ Z, n1 L- e' H- u7 x print(data)% x# p2 w! a- ~ - a/ u8 A4 j! _% W; q0 a0 A' ` return None( \: r( [1 Z# O ) @ Y% t/ K# d; } if __name__ == "__main__":- ^$ y; C+ J2 z! Z# b$ \7 S mm() - y3 |2 T) _- Q8 s# Q& F
P$ a) ^7 @$ G, f5 K( W

数据标准化

) |2 p& _3 f3 x+ b

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

# b, V" C6 y K: C" D, W# y
from sklearn.preprocessing import StandardScaler1 a& V2 [3 i$ B& U' H9 \ 3 P/ f# p. S/ G. o, a # x = x-mean/γ mean:平均值 γ:标准差7 w2 x0 p0 D% @ # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 8 F, B& s2 M3 G' J( R! b # 优点,不易受异常数据印象( a9 S4 [8 F4 e$ \$ T3 ` - \# M, i* T* c! | # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响0 ^/ q* C! a7 y* l( n& y3 H def stand(): 9 Y( o; S9 }* ~3 [# n' n """/ Y: V1 u# H8 z$ q; e7 f K 标准化缩放# k3 C6 L( L7 r$ y/ m/ ] """9 m- r2 V5 m& l! r* A. J std = StandardScaler(); p Y4 m* g8 Y0 ? - K& I" _, |+ W7 D7 _' m pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]] ' X+ y" M9 P$ N7 {, U0 D8 i ) V6 }$ ^4 V: S1 \* Z data = std.fit_transform(pre_data) / c( R+ k( E4 c4 t8 e2 N) z9 l print((1000-2000)) j. O! a/ _% N+ L/ {( w" h* t5 m print(pre_data) 1 j' y4 o' A5 O* n. I8 _% q/ H print(data)- R+ e, \" O; W8 i( h; R# A7 A9 I7 v + K/ M: C. v6 e1 g$ l return None $ ] ~7 D4 d3 B ( o8 ?2 O: Z1 } if __name__ == "__main__": 7 S( V) }' t2 n C1 R; L0 s6 ~. B$ [ stand() 1 t5 z$ B% E7 @/ T; p# N7 [& b
* w7 d, M. c# e: u

下一期讲一讲特征工程

1 I% l' p1 R! m" c6 j

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

' e& w# A5 F5 s t
8 L3 Y# {* B+ G; O" n- w 9 f- R5 S, v* g% D2 o$ l . k7 e O9 F X1 V2 t. I$ c' b & x1 A: t5 m* m4 q : W4 |- J6 d5 R8 N/ C+ p$ k" L
回复

举报 使用道具

相关帖子

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