机器学习 -- KNN算法(十一 数据归一化)

一. 为什么需要数据归一化?

假设有如下数据,当我们在计算距离的时候会发现样本间的距离被发现时间所主导,此时就需要进行数据的归一化操作。

机器学习 -- KNN算法(十一 数据归一化)_第1张图片

 

二. 归一化:将所有数据映射到同一尺度。

1. 最值归一化:将所有数据映射到0到1之间。

(1)适用场景:适用于分布有明显边界的情况;受outlier影响较大。

(2)计算公式:

x_{scale} = \frac{x - x_{min}}{x_{max} - x_{min}}

2. 均值方差归一化(standardization):把所有数据归一到均值为0方差为1的分布中。

(1)使用场景:数据分布没有明显的边界;有可能存在极端值。

(2)计算公式:

x_{scale} = \frac{x - x_{mean}}{s}

推荐一般使用此归一化方法。

 

三. 代码实现

打开jupyter notebook,新建一个python3文件。导入需要的包:

import numpy as np
import matplotlib.pyplot as plt

1. 均值归一化

(1)一维向量的均值归一化:

机器学习 -- KNN算法(十一 数据归一化)_第2张图片

(2)多维向量的均值归一化:

① 数据的生成,将数组转成浮点类型。

机器学习 -- KNN算法(十一 数据归一化)_第3张图片

② 对数据的特征进行最值归一化,得出归一化后的数组。

机器学习 -- KNN算法(十一 数据归一化)_第4张图片

③ 可以绘制图像查看。看到所有数据都分布在0到1的范围内。

机器学习 -- KNN算法(十一 数据归一化)_第5张图片

2. 均值方差归一化

机器学习 -- KNN算法(十一 数据归一化)_第6张图片

机器学习 -- KNN算法(十一 数据归一化)_第7张图片

观察发现均值方差归一化后均值接近于0而方差接近于1。

机器学习 -- KNN算法(十一 数据归一化)_第8张图片

 

 

 

你可能感兴趣的:(机器学习)