本关任务:利用sklearn对数据进行非线性转换。
为什么要进行线性转换
如果特征不服从或者近似服从标准正态分布(即,零均值、单位标准差的正态分布)的话,算法的表现会大打折扣,非线性转换就是将我们的特征映射到**均匀分布或者高斯分布(**即正态分布)。
映射到均匀分布
将最大的数映射为1,最小的数映射为1,其他的数按从小到大的顺序均匀分布在0到1之间,如有相同的数则取平均值
代码实现:
from sklearn.preprocessing import QuantileTransformer
import numpy as np
data = np.array([[1],[2],[3],[4],[5]])
quantile_transformer = QuantileTransformer(random_state=666)