目录
关注我【生物海洋计算机支线】,获得更多生物海洋学,数据处理,作图等相关知识
铁甲将军夜渡关
朝臣带漏五更寒
山寺日高僧未起
看来名利不如闲 啪!(醒木的声音)
一周没有更新了【吃瓜】
因为了小小的科(摸)研(鱼)任务
忙
都忙
忙点好啊(主要是早上不起床)
我们在进行数据分析时,有一个非常重要的前期操作--数据预处理
在学习机器学习算法时,为了更好的理解算法的基本思想
会用到处理过的很干净的数据集
而真实的数据中,多种多样的数据类型、输入的错误、数据的质量等等原因
都可能导致无法匹配模型需求
这时候就需要进行数据预处理工作
数据预处理(无量纲化)
把不同规格的数据转为到统一规格就是无量纲化
比如我们判断环境参数对浮游植物的影响
22.9°的温度显然比0.044μmol/L的磷浓度有更大取值范围
这会放大温度的影响效果
数据归一化
将数据收敛到[0,1]之间该过程就是数据归一化
可以使用sklearn中preprocessing.MinMaxScaler来实现这个功能
归一化后的数据服从正态分布
from sklearn.preprocessing import MinMaxScaler
def mm():
"""
归一化处理
"""
# 实例化MinMaxScaler函数,不填写feature_range参数默认为0,1
mm = MinMaxScaler(feature_range=(2, 3))
data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
print(data)
return None
if __name__ == "__main__":
mm()
数据标准化
标准化后的数据服从均值为0方差为1的正态分布
from sklearn.preprocessing import StandardScaler
# x' = x-mean/γ mean:平均值 γ:标准差
# 方差 = (x1-mean)²+(x2-mean)²+(xn-mean)² / n 标准差 = 方差开根号
# 优点,不易受异常数据印象
# 一个目标变量由多个特征变量影响,当一个特征变量很大时,影响程度更大,所以我们进行标准化,消除这样的影响
def stand():
"""
标准化缩放
"""
std = StandardScaler()
pre_data = [[ 1000., -1., 3.],[ 2000., 4., 2.],[ 4000., 6., -1.]]
data = std.fit_transform(pre_data)
print((1000-2000))
print(pre_data)
print(data)
return None
if __name__ == "__main__":
stand()