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

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

[复制链接]
, N, [' Q& ?. `
7 n+ W! e2 d% a) n* Q H1 Y0 ~, _

铁甲将军夜渡关

' a8 O# y# M, s' H

朝臣带漏五更寒

! Z/ Q! y* K0 v5 d

山寺日高僧未起

* d6 J1 _. V9 c8 ]3 F

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

2 E5 L7 h4 t: [) u

一周没有更新了【吃瓜】

: e& |0 \3 s0 h

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

. S) t" `* b$ { {

' u/ k9 K/ ~1 K+ x+ c+ n$ b; s

都忙

1 ]6 N! V4 N( o# q

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

# x5 T2 R+ I: I" r4 |: @4 Q
1 H8 U, ^9 I% P f1 B: e$ Z

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

y; N' t0 {- W; F

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

; g2 N0 l: g" u- ~

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

' [1 P8 T# O" J

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

/ X* q+ U" K T! ?( J g

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

1 s. t" x: I* q K% ]

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

" p( x, r$ d+ Q4 H

数据预处理(无量纲化

# h6 k0 q v* q4 z6 W$ ` E% n

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

. l+ N' r! N" s! s% X6 Z

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

, K0 t' k* r; _' Z( o! h' ?

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

* A3 R5 `" \7 I; P

这会放大温度的影响效果

0 v- q* F$ \2 j: W

数据归一化

8 n% B! q0 g, M: G! q* w

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

6 p1 }2 L: s& @3 {) X6 O

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

, M/ u5 n, k6 i$ _

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

' }! R- Y1 A% C. y/ Q
from sklearn.preprocessing import MinMaxScaler2 q+ a) M1 M3 h; t1 E9 W ' ^& y2 U$ C; U4 b9 y5 ^0 x3 } def mm():! @# r, D) r, {) O0 C """# e, m% L9 Q- G0 d+ l" _ 归一化处理; x; e9 }: [% f) o' S """6 K1 Y7 a2 `0 K5 R1 m # 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1' M& m' {2 P: h+ P" _4 \& L mm = MinMaxScaler(feature_range=(2, 3)) 2 p5 N e7 N2 s# l+ Y: s$ |* d. |5 K & r1 ?. }. h8 V! k( H data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])" `7 r5 O3 w- J, `; l: ]# I0 s / @: a- N o* R9 S3 |& p2 b7 V print(data)/ v% b1 r8 O$ N: U8 v1 M " O4 n: H# v! ~6 F return None 6 r* I j3 D# L b" H 0 ^9 T8 Y* B f5 _/ _+ E if __name__ == "__main__":' \8 ~9 s% V8 N) a4 Y* I/ A5 S mm() : ^6 n5 }& m8 n+ X8 t! e
4 v! S& `3 P( R! y, w& H+ O

数据标准化

2 u# P) b- g" _% e* l f7 e

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

9 C; c" \) z: b7 E
from sklearn.preprocessing import StandardScaler " ?- y6 X2 l( L4 e& W! W 0 b5 ~1 c+ z0 R/ P # x = x-mean/γ mean:平均值 γ:标准差: b7 _" X$ a4 C+ d" n # 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号 * u) p$ y. Y, g+ O' V3 V& D2 K& e # 优点,不易受异常数据印象 9 p: o! L) l/ C' P 6 A1 d! [! D' U: ^( @ # 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响 & g' N6 J7 I# ^7 K8 Q$ _8 ~9 ~, [ ` def stand(): ' `) k" }2 W& @: z """: i$ o: @$ v& q 标准化缩放 " B# Z2 }/ ?" w7 _ """ : O. z# ^. ~( [ std = StandardScaler() / v8 W9 K; e/ x0 X : o, a; ~4 y2 u4 i pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]$ A" L5 P W7 B. C% c1 p4 V4 B & x- L+ f- K8 k2 U" v& J data = std.fit_transform(pre_data)# x6 P) ?0 I4 {9 N print((1000-2000))0 L: A; n! Z! U2 y$ T print(pre_data) 2 `+ ~1 a: q! j _1 k* h print(data) 9 D/ T% m- _# t( O ( q5 @+ K* `2 Z) ^ return None 0 w/ H$ a# L% N: O1 u: L; L0 v+ e9 U: v" z% [1 [- [0 {9 Q if __name__ == "__main__": + l6 g% `9 Q' v+ j ~* e! \( d stand() 5 Q0 H0 {' {, v
) N L5 U" t) a" b! b$ E

下一期讲一讲特征工程

3 V; R" D0 Q; P! M- b% z3 U; d

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

* W" f; }5 e2 D. ^+ s0 F! X
9 w5 r! ]$ j- k& \8 j& Y ; V# _$ g( ?7 t5 U U8 |, F 2 I* o* ^5 L! r4 W 4 F3 }# w w/ } $ B t+ i% [+ W" I! Q8 r
回复

举报 使用道具

相关帖子

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