一个简单但是能上分的特征标准化方法
一般情况下我们在做数据预处理时都是使用StandardScaler来特征的标准化,如果你的数据中包含异常值,那么效果可能不好。
这里介绍的方法叫Robust Scaling,正如它的名字一样能够获得更健壮的特征缩放结果。与StandardScaler缩放不同,异常值根本不包括在Robust Scaling计算中。因此在包含异常值的数据集中,更有可能缩放到更接近正态分布。
StandardScaler会确保每个特征的平均值为0,方差为1。而RobustScaler使用中位数和四分位数(四分之一),确保每个特征的统计属性都位于同一范围。
公式如下:
我们使用一些数据看看他的结果,首先创建测试数据
import numpy as np
import matplotlib.pyplot as plt
nb_samples = 200
mu = [1.0, 1.0]
covm = [[2.0, 0.0], [0.0, 0.8]]
X = np.random.multivariate_normal(mean=mu, cov=covm, size=nb_samples)
然后使用三个常用的缩放方法对数据进行预处理:
from sklearn.preprocessing import StandardScaler, RobustScaler, MinMaxScaler
ss = StandardScaler()
X_ss = ss.fit_transform(X)
rs = RobustScaler(quantile_range=(10, 90))
X_rs = rs.fit_transform(X)
mms = MinMaxScaler(feature_range=(-1, 1))
X_mms = mms.fit_transform(X)
可视化:
https://avoid.overfit.cn/post/003377e07cdd4a7db3d4039979019bb8
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)