【Python机器学习】无监督学习——不同类型的预处理

之前学习过,一些算法(比如神经网络和SVM)对数据缩放非常敏感。因此,通常的做法是对特征进行调节,使数据更适合于这些算法。通常来说,这是对数据的一种简单的按照特征的缩放和移动。举例:

import mglearn.plots
import matplotlib.pyplot as plt


mglearn.plots.plot_scaling()
plt.show()

如上图,左侧显示的是一个模拟的有两个特征的二分类数据集。第一个特征位于10-15之间,第二个特征大约位于0-9之间。

右侧的4张图展示了4种数据变换方法,都生成了更加标准的范围。

1、scikit-learn中的StandardScaler确保每个特征的平均值为0,方差为1,使所有特征都位于同一量级,但这种缩放不能保证特征任何特定的最大值与最小值。

2、RobustScaler的工作原理与StandardScaler类似,确保每个特征的统计属性都位于同一范围,但RobustScaler使用的是中位数和四分位数,而不是平均值和方差。这样RobustScaler会忽略与其他点有很大不同的数据点(比如测量误差)。这些与众不同的数据点也叫异常值。可能会给其他缩放方法造成麻烦;

3、MinMaxScaler移动数据,使所有特征都刚好位于0-1之间,对于二维数据集来说,所有的数据都包含在x轴0-1与Y轴0-1组成的矩阵之间;

4、Normalizer用到一种完全不同的缩放方法。它对每个数据点进行缩放,使得特征向量的欧式长度等于1,换句话说,它将一个数据点投射在半径为1 的圆上,这意味着每个数据点的缩放比例都不相同。如果只有数据的方向(或角度)是重要的,而特征向量的长度无关紧要,通常会使用这种归一化。

相关推荐

  1. Python机器学习监督学习(理论知识)

    2024-06-06 16:34:02       54 阅读
  2. Python 机器学习 特征预处理

    2024-06-06 16:34:02       49 阅读
  3. Python机器学习项目开发实战:监督学习聚类

    2024-06-06 16:34:02       29 阅读
  4. 机器学习监督学习和自监督学习

    2024-06-06 16:34:02       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 16:34:02       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 16:34:02       97 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 16:34:02       78 阅读
  4. Python语言-面向对象

    2024-06-06 16:34:02       88 阅读

热门阅读

  1. eazyexcel生成校验单元格内容的excel文件

    2024-06-06 16:34:02       29 阅读
  2. adam优化器计算过程(tensorflow)

    2024-06-06 16:34:02       31 阅读
  3. 网络数据库后端框架相关面试题

    2024-06-06 16:34:02       33 阅读
  4. MySQL数据库主从配置

    2024-06-06 16:34:02       24 阅读
  5. MySQL迁移达梦数据库避坑

    2024-06-06 16:34:02       34 阅读
  6. 二叉树的中序遍历-力扣

    2024-06-06 16:34:02       28 阅读
  7. 二叉树的前序遍历-力扣

    2024-06-06 16:34:02       29 阅读
  8. mysql数据备份和还原知识点

    2024-06-06 16:34:02       32 阅读