当前位置: 首页 > news >正文

新手村:数据预处理-特征缩放

新手村:数据预处理-特征缩放

在这里插入图片描述

特征缩放(Feature Scaling)是数据预处理中的一个重要步骤,特别是在应用某些机器学习算法时。特征缩放可以使不同尺度的特征具有相同的量级,从而提高模型训练的效率和性能。常见的特征缩放方法包括标准化(Standardization)和归一化(Normalization)。

常见的特征缩放方法

  1. 标准化(Standardization)

    • 将特征转换为均值为0,标准差为1的标准正态分布。
    • 公式: x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x=σxμ
      • x ′ x' x 是缩放后的特征值
      • x x x 是原始特征值
      • μ \mu μ 是特征的均值
      • σ \sigma σ 是特征的标准差
  2. 归一化(Normalization)

    • 将特征缩放到一个特定范围(通常是[0, 1]或[-1, 1])。
    • 最常用的归一化方法是Min-Max缩放:
      • 公式: x ′ = x − x min x max − x min x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} x=xmaxxminxxmin
        • x ′ x' x 是缩放后的特征值
        • x x x 是原始特征值
        • x min x_{\text{min}} xmin x max x_{\text{max}} xmax 分别是特征的最小值和最大值

特征缩放的应用场景

  • 需要特征缩放的算法

    • 线性回归、逻辑回归、支持向量机(SVM)、K近邻(KNN)、神经网络等。
    • 这些算法对特征的尺度敏感,特征缩放可以加快收敛速度并提高模型性能。
  • 不需要特征缩放的算法

    • 决策树、随机森林等基于树的算法,这些算法不依赖于特征的尺度。

示例代码

以下是一个使用Python和scikit-learn库进行特征缩放的示例代码:

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler

# 创建一个示例数据集
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [100, 200, 300, 400, 500],
    'C': [0.1, 0.2, 0.3, 0.4, 0.5]
}

df = pd.DataFrame(data)

print("原始数据:")
print(df)

# 标准化
scaler_standard = StandardScaler()
df_standardized = pd.DataFrame(scaler_standard.fit_transform(df), columns=df.columns)
print("\n标准化后的数据:")
print(df_standardized)

# 归一化(Min-Max缩放)
scaler_minmax = MinMaxScaler()
df_normalized = pd.DataFrame(scaler_minmax.fit_transform(df), columns=df.columns)
print("\n归一化后的数据:")
print(df_normalized)

输出结果解释

原始数据
原始数据:
     A      B    C
0    1    100  0.1
1    2    200  0.2
2    3    300  0.3
3    4    400  0.4
4    5    500  0.5
标准化后的数据
标准化后的数据:
          A         B         C
0 -1.414214 -1.414214 -1.414214
1 -0.707107 -0.707107 -0.707107
2  0.000000  0.000000  0.000000
3  0.707107  0.707107  0.707107
4  1.414214  1.414214  1.414214
归一化后的数据
归一化后的数据:
     A    B    C
0  0.0  0.0  0.0
1  0.25 0.25 0.25
2  0.5  0.5  0.5
3  0.75 0.75 0.75
4  1.0  1.0  1.0

总结表格

方法描述适用场景优点缺点
标准化将特征转换为均值为0,标准差为1的标准正态分布。线性回归、逻辑回归、SVM、KNN、神经网络等。不受数据范围影响,适用于大多数算法。对异常值较为敏感,可能导致极端值的影响被放大。
归一化(Min-Max缩放)将特征缩放到一个特定范围(通常是[0, 1])。需要将数据限制在特定范围内的情况。数据范围固定,适用于需要严格控制输出范围的场景。受数据范围影响较大,对异常值敏感,可能导致信息丢失。

相关文章:

  • 奇安信面试题
  • 过程性编程(Procedural Programming)和面向对象编程
  • OpenFeign
  • 1.6【hardware]
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(56)斩仙葫芦收字母 - 字母异位词分组(哈希映射)
  • Spring Retry
  • Python基于Django和协同过滤算法实现电影推荐系统功能丰富版
  • kubernetes|云原生|部署单master的kubernetes 1.25.5版本集群完全记录(使用contained 运行时)
  • 课堂练习 2:测试 PHP 是否安装成功
  • 用uv管理python环境/项目(各种应用场景)
  • Kafka可视化工具KafkaTool工具的使用
  • 3.4 Spring Boot整合Elasticsearch:全文检索与聚合分析
  • 游戏引擎学习第164天
  • 解析GNGGA数据,C语言单片机
  • 【k8s002】k8s健康检查与故障诊断
  • ETIMEDOUT 网络超时问题
  • 电机控制常见面试问题(十三)
  • redis事务
  • 企业微信群聊机器人开发
  • 深度优先搜索(DFS)与方格图的连通性判断
  • 网站建设方案评标原则/优质外链
  • 网站建立吸引人的策划活动/b2b电商平台
  • 做纺织生意用什么网站好/建站工具
  • php做网站和小程序很好/关键词排名批量查询
  • 淮北哪里做网站/百度官网网站
  • 响应式网站设计的要求/友情链接seo