Li‘s影像组学视频学习笔记(19)-数据标准化、归⼀化极简概述
本笔记来源于B站Up主: 有Li 的影像组学系列教学视频
本节(19)主要介绍:
为什么要进⾏标准化、归⼀化?
1. 机器学习算法的要求
2. 便于横向⽐较
# 标准化 (影像组学中最常⽤)
# z = (x - u)/s
# 异常值⼀般对结果影响不⼤
from sklearn.preprocessing import StandardScaler
data = [[10,-20],[0.3,999],[-1,12],[0.1,21]]
res = StandardScaler().fit_transform(data)
print(res)
Output:
# [[ 1.72127555 -0.63345074]
#  [-0.46125685  1.73096796]
#  [-0.75376119 -0.55920011]
#  [-0.50625751 -0.53831711]]
# 归⼀化
# X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
transform中文翻译# 异常值有可能对结果有重要影响
from sklearn.preprocessing import MinMaxScaler
data = [[10,-20],[0.3,999],[-1,12],[0.1,21]]
res = MinMaxScaler().fit_transform(data)
print(res)
Output:
# [[1.        0.        ]
#  [0.11818182 1.        ]
#  [0.        0.03140334]
#  [0.1        0.04023553]]
# 与IQR第1四分位数(第25个分位数)和第3个四分位数(第75个分位数)之间的范围相关。
# 不常⽤
from sklearn.preprocessing import RobustScaler
data = [[10,-20],[0.3,999],[-1,12],[0.1,21]]
res = RobustScaler().fit_transform(data)
print(res)
Output:
[[ 3.37931034 -0.13957935]
[ 0.03448276  3.75717017]
[-0.4137931  -0.01720841]
[-0.03448276  0.01720841]]
Notes:
# 影像组学研究中有两处涉及标准化或归⼀化,⼀是在图像预处理时,⼆是特征提取后
# Image normalization 图像归⼀化
# normalize 当设置为True时,对图像进⾏归⼀化处理,默认为False
# normalizeScale: 对图像进⾏归⼀化处理的⽐例,默认为1
# RemoveOutliers: 从图像中剔除的离值
继续深化学习这两个概念时,发现⽹上对这个的讨论很热闹,原因是由于翻译的不⼀致,导致概念的混乱,所以最好的办法就是回归英⽂中的本来定义。
"标准化"和"归⼀化"这两个中⽂词要指代四种Feature scaling(特征缩放)⽅法:
Rescaling (min-max normalization) ,有时简称normalization(有点坑)。
⼀般把第⼀种叫做归⼀化,第三种叫做标准化。
具体可参考知乎上的讨论帖:
答主@龚焱 及@gokenu 回答的⽐较详细了。
RadiomicsWorld “影像组学世界”论坛: