目标
使用python对pandas拿到的数据进行归一化,方便用于训练或者预测
实现
数据来源:
1 2 3
| import pandas as pddataset = pd.read_csv("data/boston.csv")
|
1. 均值方差归一化(推荐)
适用于没明显边界,有可能存在极值的
1 2 3 4
| stats = dataset.describe().transpose() def norm(x): return (x - stats['mean']) / stats['std'] normed_data = norm(dataset)
|
2. 最值归一化
适用于有边界为题的,如果存在极端的极值,会影响归一化的结果
1 2 3
| def norm(x): return (x - x.min()) / (x.max() - x.min()) normed_data = norm(dataset)
|
经过实际测试,采用第一种方法预测的数据更为准确(表现为mae更小,预测值与真实值更吻合。当然在特别的数据下,你可能得到截然相反的结果),所以更推荐第一种。
但当数据只有一条或者很少时,可能拿不到方差,这时可以采用第二种
参考:数据归一化(附简单实现和sklearn简单处理数据)