数据泛化
一些常见的统计方法
- 
mean:均值,对于一组数据来说,计算其均值可以直接使用np.mean来进行计算,对于多维数据,numpy引入了轴axis的概念,其中,轴的起点从0开始一直到n,例如,在二维数据中,其中每一行代表一个样本,每一列代表一个特征(类似于csv文件)
  长,宽,高 x1 1,2,3 x2 1,4,5 x3 1,6,7 
 对于这样一组数据,用列表来表示就是 1 2 3 4data = [x1, x2, x3] data = [[1,2,3], [1,4,5], [1,6,7]]其中,按照 axis=0的方式来计算均值,这里计算的就是长、宽、高 每个特征的均长、均宽、均高,按照axis = 1来进行计算,也就是计算每一行的均值,也就是每一个样本的均值(看起来没有什么意义)1 2mean1 = np.mean(data, axis=0) # 按照列进行计算 mean2 = np.mean(data, axis=1) # 按照行进行计算下面所有的方法 var(方差),std(标准差)等均可以按照不同的轴进行计算
- 
var:variance,方差,不在叙述计算公式,可以直接使用np.var()
- 
std:Standard deviation,可以根据方差得到,可以直接使用`np.std()
- 
np.round:保留小数操作,例如,要对data保留三位小数,可以表示为1ans = np.round(data, 3)
min-max均值规化
公式为
$$ x’ = \frac{x-min}{max-min}$$
对于一组数据data,可以这样计算
|  |  | 
标准化
标准化可以把各个特征标准化为标准差为1,均值为0的正态分布
公式为
$$ x = \frac{x-\mu}{\sigma} $$
其中, $\mu$是均值,$\sigma$是标准差
|  |  | 
总结
是否必须使用标准化方法?
- 算法需求:
- 某些算法(如距离-based的算法, K-means, K邻近)对特征尺度非常敏感,标准化几乎是必需的。
- 某些算法(如决策树、随机森林等)对特征尺度不敏感,标准化不是必需的。
 
- 数据特性:
- 如果特征的数值范围已经很接近,标准化的效果可能不明显。
- 如果特征的数值范围差异很大,标准化可以显著提升模型性能。
 
- 模型性能:
- 通过实验比较标准化前后的模型性能,可以决定是否需要标准化。