使用sklearn轻松实现数据缩放

简介: 使用sklearn轻松实现数据缩放

一、数据缩放

你的预处理数据集中可能包含各种各样、不同比例的特征字段,比如美元、千克、价格,有的特征列数值范围在100以内,有的却达到几百万,差异很大。

很多机器学习模型不希望有这样大的差异,如果数据集各个属性之间的数值差异越小,则模型表现的会越好。这里不一概而论,具体原因小伙伴们自行探索下。

方法1:数据归一化

数据归一化是指将原始数据缩放到0和1之间。

对于依赖于值的大小的模型,这种对输入属性的缩放很管用。比如在K近邻模型的距离测量和回归系数的准备。

接下来用都知道的鸢尾花数据集演示数据归一化:

# 对鸢尾花数据集进行数据归一化处理.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# 加载数据
iris = load_iris()
print(iris.data.shape)
# 分离原始数据集,分为自变量和因变量
X = iris.data
y = iris.target
# 归一化处理
normalized_X = preprocessing.normalize(X)

更多关于归一化处理,详见API

方法2:数据标准化

数据标准化是指:将数据缩放,改变每个属性的分布,使其平均值为0,标准差为1。

诸如高斯过程等依赖于特征分布的模型,对特征进行标准化是非常有用的。

依然用鸢尾花的例子:

# 对鸢尾花数据集进行数据标准化处理.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# 加载数据
iris = load_iris()
print(iris.data.shape)
# 分离原始数据集,分为自变量和因变量
X = iris.data
y = iris.target
# 标准化处理
standardized_X = preprocessing.scale(X)

更多关于归一化处理,详见API

二、说明

很难知道数据缩放是否会有利于模型的效果,大概率上是有用的,但不排除出现产生负效果。

中肯的建议是,先建立一个数据缩放后的副本,使用你的算法模型测试对比缩放前后的效果。

这可以让你快速知道,你的模型中缩放带来的好处或弊端。

你也可以试用不同的缩放方法,进行对比。

三、总结

数据缩放是一种非常重要的数据转换方法。

本文介绍了归一化和标准化两种方法,均用Python Scikit-Learn库提供的方法实现。简单好用,快试试吧!


-END-

相关文章
|
4月前
|
数据可视化 Linux Python
NumPy 随机数据分布与 Seaborn 可视化详解
数据分布是指数据集中所有可能值出现的频率,并用概率来表示。它描述了数据取值的可能性。 Seaborn 是一个基于 Matplotlib 的 Python 数据可视化库,用于创建统计图表。它提供了一系列高级绘图函数,可以轻松创建美观且信息丰富的统计图形。
|
2月前
|
计算机视觉
【YOLOv10改进-损失函数】Shape-IoU:考虑边框形状与尺度的指标
YOLO目标检测专栏探讨了边框回归损失的创新方法,强调了目标形状和尺度对结果的影响。提出的新方法Shape-IoU关注边框自身属性,通过聚焦形状和尺度提高回归精度。实验显示,该方法提升了检测效果,超越现有技术,在多个任务中达到SOTA。论文和代码已公开。
|
4月前
|
计算机视觉
【YOLOv8改进】Shape-IoU:考虑边框形状与尺度的指标(论文笔记+引入代码)
YOLO目标检测专栏探讨了边框回归损失的创新方法,强调了目标形状和尺度对结果的影响。提出的新方法Shape-IoU关注边框自身属性,通过聚焦形状和尺度提高回归精度。实验显示,该方法提升了检测效果,超越现有技术,在多个任务中达到SOTA。论文和代码已公开。
|
4月前
|
数据建模 数据处理 Python
SciPy中的插值与拟合:实现数据平滑与曲线构建
【4月更文挑战第17天】本文介绍了SciPy在Python中用于插值和拟合的功能。SciPy的`interpolate`模块提供线性、多项式和样条插值,帮助构建平滑曲线和处理缺失值。示例展示了如何使用线性插值创建插值函数并绘制插值曲线。同时,文章讨论了拟合,通过`optimize`和`curve_fit`进行数据建模,以二次函数为例演示拟合过程。SciPy支持多种拟合方法,适应不同数据需求。这些工具在数据处理和分析中起到关键作用,可与其他SciPy功能结合使用,如信号处理和统计分析,以深入挖掘数据信息。
|
4月前
|
数据可视化 API 算法框架/工具
Python用稀疏、高斯随机投影和主成分分析PCA对MNIST手写数字数据进行降维可视化
Python用稀疏、高斯随机投影和主成分分析PCA对MNIST手写数字数据进行降维可视化
|
11月前
|
机器学习/深度学习 人工智能 文字识别
OpenCV-字典法实现数字识别(尺寸归一化+图像差值)
OpenCV-字典法实现数字识别(尺寸归一化+图像差值)
|
TensorFlow 算法框架/工具
Tensorflow训练模型使用history绘制结果无绘制曲线解决方案
Tensorflow训练模型使用history绘制结果无绘制曲线解决方案
111 0
Tensorflow训练模型使用history绘制结果无绘制曲线解决方案
matplotlib 绘制一个灰度直方图
matplotlib 绘制一个灰度直方图
matplotlib 绘制一个灰度直方图
|
Python
【Numpy总结】第二节:Numpy 的属性与形状变换
在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions),维度的数量称为秩(rank);比如说,二维数组相当于是两个一维数组,即 二维数组有两个轴,秩为2 。 <font color=blue > 重点:很多时候可以声明 axis。 axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作; axis=1,表示沿着第 1 轴进行操作,即对每一行进行操作。
108 0
【Numpy总结】第二节:Numpy 的属性与形状变换
|
算法 数据挖掘 Android开发
opencv-kmeans-图片颜色量化
牙叔教程 简单易懂
253 0