协调尺度:特征缩放在机器学习中的重要作用

目录

一、介绍

二、背景知识

三、了解功能缩放

四、特征缩放方法

五、特征缩放的重要性

六、实际意义

七、代码

八、结论


一、介绍

        特征缩放是机器学习和数据分析预处理阶段的关键步骤,在优化各种算法的性能和效率方面起着至关重要的作用。本文深入探讨了特征缩放的本质,探讨了其不同的方法,强调了其重要性,并考虑了其在机器学习模型中的应用的实际意义。

在机器学习的世界里,算法学会寻找模式并做出决策,特征缩放是很好的均衡器,确保每个特征,无论其原始规模如何,都有一个在数据合唱中同样响亮的声音。

二、背景知识

        特征缩放是一种用于机器学习和数据挖掘的数据预处理方法,用于对数据的自变量或特征的范围进行归一化。在机器学习的背景下,特征缩放可能至关重要,因为它直接影响使用距离计算的算法的性能,例如 k 最近邻 (KNN) 和 k 均值聚类,并且会显着影响神经网络和支持向量机中使用的梯度下降优化方法的性能。

        有几种常见的特征缩放方法:

1 最小-最大缩放(归一化):

  • 该方法单独缩放和转换每个特征,使其在训练集的给定范围内,例如,介于 0 和 1 之间。要素归一化值的计算公式为:

  • 其中 X 是原始值,minXmin 是要素的最小值,maxXmax 是要素的最大值。

2 标准化(Z 分数归一化):

  • 此方法对要素进行缩放,使其具有 0μ=0 和 1 σ=1 的标准正态分布属性,其中 μ 是平均值(平均值),σ 是与平均值的标准差。样本的标准分数(也称为 z 分数)的计算方法如下:

  • 标准化不会将值绑定到特定范围,这对于某些算法来说可能是一个问题(例如,神经网络通常期望输入值范围为 0 到 1)。

3 最大Abs缩放:

  • 单独缩放和转换每个特征,使训练集中每个特征的最大绝对值为 1.0。它不会移动/居中数据,因此不会破坏任何稀疏性。

4 Robust 缩放的:

  • 此方法删除中位数并根据分位数范围(通常是四分位距,IQR)缩放数据。它对异常值具有鲁棒性,当数据包含许多异常值或我们不想假设特征的正态分布时,会使用它。

        特征缩放应用于数据的自变量或特征,以标准化数据的范围。这在计算数据点之间距离的算法中非常重要,或者当特征具有不同的单位和比例时,因为它可以使训练过程更快,并减少卡在局部最优状态的机会。但是,缩放技术的选择可能取决于算法和数据的具体特征。

三、了解功能缩放

        特征缩放是对数据中自变量或特征范围进行归一化或标准化的过程。该技术的主要目标是确保没有一个特征因其规模而主导模型,从而使算法在训练过程中更快、更有效地收敛。对于依赖于距离计算的模型(例如 k 最近邻 (KNN) 和 k 均值聚类)或使用梯度下降优化方法(包括神经网络和支持向量机 (SVM))的模型,这一点尤为重要。

四、特征缩放方法

        有几种常见的功能缩放方法,每种方法都有其独特的应用和优点:

  1. 最小-最大缩放(归一化):此方法调整数据的缩放比例,使其适合特定范围,通常为 0 到 1。它适用于假定数据处于有限间隔但对异常值敏感的算法。
  2. 标准化(Z 分数归一化):与归一化不同,标准化不会将值绑定到特定范围,这使得它适用于不假设特定数据分布的算法。它将特征转换为均值为零,标准差为一,从而促进对数据规模敏感的算法更快地收敛。
  3. 最大 Abs 缩放:此技术按每个要素的最大绝对值缩放。这对于已经居中的数据或稀疏数据非常有用,其中零是一个有意义的值。
  4. 强大的扩展性:通过删除中位数并根据分位数范围缩放数据,鲁棒缩放可减轻异常值的影响。当数据集包含许多异常值或数据不服从正态分布时,它特别有利。

五、特征缩放的重要性

        特征缩放通过确保特征对结果的贡献相等来增强机器学习算法的性能,从而防止由于数据的固有规模而产生的偏差。例如,在梯度下降算法中,特征缩放可以显著加快收敛速度,因为它确保向最小值迈出的步长在所有维度上都是成比例的。同样,在计算数据点之间距离的聚类算法和模型中,要素缩放可确保距离度量不会因要素比例而偏斜。

六、实际意义

        在实践中,特征缩放方法的选择取决于所使用的算法和数据的具体特征。对于决策树或随机森林等算法,可能不需要特征缩放,因为这些模型对数据规模不敏感。然而,对于支持向量机、神经网络和基于距离的算法,特征缩放对于模型性能和准确性至关重要。

        此外,异常值的存在会显着影响使用哪种缩放方法。例如,最小-最大缩放可能对异常值高度敏感,可能会将大部分数据压缩到一个小范围内。在这种情况下,可靠的扩展或标准化可能更合适。

七、代码

        为了使用完整的 Python 代码示例来说明特征缩放,我们将创建一个合成数据集,应用不同的特征缩放技术,并可视化这些技术对数据集的影响。我们还将包含指标来评估缩放对简单机器学习模型的影响。

步骤 1:创建合成数据集

首先,我们将使用 创建一个具有不同比例特征的合成数据集。sklearn.datasets.make_classification

步骤 2:应用特征缩放技术

我们将应用以下功能缩放技术:

  • 最小-最大缩放
  • 标准化(Z 分数归一化)
  • 最大腹肌缩放
  • 强大的扩展能力

步骤 3:可视化要素缩放的效果

在应用每种缩放技术之前和之后,我们将使用绘图来可视化数据集。

步骤 4:评估对机器学习模型的影响

作为一个简单的评估,我们将使用逻辑回归模型来查看特征缩放如何影响其性能。我们将数据集拆分为训练集和测试集,应用缩放,训练模型,然后使用准确性作为指标对其进行评估。

让我们开始对这个过程进行编码:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, MinMaxScaler, MaxAbsScaler, RobustScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score# Step 1: Create a synthetic dataset
X, y = make_classification(n_samples=1000, n_features=2, n_redundant=0, n_clusters_per_class=1, weights=[0.5], random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# Function to apply scaling and train a logistic regression model
def apply_scaling_and_evaluate(scaler):X_train_scaled = scaler.fit_transform(X_train)X_test_scaled = scaler.transform(X_test)# Train logistic regression modelmodel = LogisticRegression(random_state=42)model.fit(X_train_scaled, y_train)# Predict and evaluatepredictions = model.predict(X_test_scaled)accuracy = accuracy_score(y_test, predictions)# Plottingplt.scatter(X_train_scaled[:, 0], X_train_scaled[:, 1], c=y_train, cmap='viridis', alpha=0.5)plt.title(f"{scaler.__class__.__name__} - Accuracy: {accuracy:.2f}")plt.xlabel('Feature 1')plt.ylabel('Feature 2')plt.show()# Original Data Plot
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis', alpha=0.5)
plt.title("Original Data")
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()# Apply and visualize different scaling techniques
scalers = [MinMaxScaler(), StandardScaler(), MaxAbsScaler(), RobustScaler()]
for scaler in scalers:apply_scaling_and_evaluate(scaler)

解释:

  • 创建合成数据集:我们使用 生成一个具有两个特征的数据集。然后,将数据集拆分为训练集和测试集。make_classification
  • 应用缩放技术:对于每种缩放技术,我们创建一个缩放器对象,将其拟合到训练数据上,并转换训练集和测试集。
  • 训练和评估模型:我们在缩放数据上训练逻辑回归模型,并通过计算测试集的准确性来评估其性能。
  • 可视化:对于每种缩放技术,我们绘制缩放的特征以可视化数据分布的变化。

        此代码全面概述了如何在 Python 中应用特征缩放、可视化其效果以及评估对简单机器学习模型的影响。

八、结论

        特征缩放是机器学习算法预处理数据的基本步骤,可确保特征的缩放不会使模型产生偏差。通过了解并适当应用不同的特征缩放方法,数据科学家可以提高机器学习模型的性能、效率和准确性。因此,特征缩放不仅有助于算法的最佳功能,而且还强调了在机器学习和数据分析的更广泛背景下进行深思熟虑的数据预处理的重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/259743.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode JS专栏刷题笔记(一)

一、前言 LeetCode 在前不久出了一个 JavaScript 专栏,这个专栏一个目的是为了非前端工程师学习 JS,另一个是为了前端工程师提升 JS 能力。 因此在这个专栏中,基本不涉及什么具体算法问题,都是一些 JS 的入门语法与常见的 JS 面…

【c++ debug】记一次protobuf结构相关的coredump问题

文章目录 1. 问题现象2. 问题描述3. 问题分析4. 问题根因5. 问题修复6. 补充:类成员变量定义为引用类型 1. 问题现象 其中curr_lanes是一个目标上一帧的当前车道current_lanes_curr_lane是lane_id对应的LaneInfo信息现象:在lane_info->lane().success…

【Java面试】MongoDB

目录 1、mongodb是什么?2、mongodb特点什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?NoSQL数据库有哪些类型?启用备份故障恢复需要多久什么是master或primary什么是secondary或slave系列文章版…

多模态基础---BERT

1. BERT简介 BERT用于将一个输入的句子转换为word_embedding,本质上是多个Transformer的Encoder堆叠在一起。 其中单个Transformer Encoder结构如下: BERT-Base采用了12个Transformer Encoder。 BERT-large采用了24个Transformer Encoder。 2. BERT的…

VPX信号处理卡设计原理图:9-基于DSP TMS320C6678+FPGA XC7V690T的6U VPX信号处理卡 信号处理 无线电通信

一、概述 本板卡基于标准6U VPX 架构,为通用高性能信号处理平台,系我公司自主研发。板卡采用一片TI DSP TMS320C6678和一片Xilinx公司Virtex 7系列的FPGA XC7V690T-2FFG1761I作为主处理器,Xilinx 的Aritex XC7A200T作为辅助处理器。XC7A2…

JVS智能BI的ETL数据集实践:数据自动化分析的秘诀

数据集是JVS-智能BI中承载数据、使用数据、管理数据的基础,同样也是构建数据分析的基础。可以通俗地将其理解为数据库中的普通的表,它来源于智能的ETL数据加工工具,可以将数据集进行分析图表、统计报表、数字大屏、数据服务等制作。 数据集管…

ElasticSearch之Index Template 和Dynamic Template

写在前面 在ElasticSearch之Mapping 一文中我们一起看了es的dynamic mapping机制,通过该机制允许我们不需要显式的定义mapping信息,而是es根据插入的文档值来自动生成 ,比如插入如下的文档: {"firstName": "Chan…

初识 Rust 语言

目录 前言一、Rust 的背景二、Rust的特性三、部署开发环境,编写一个简单demo1、在ubuntu 20.04部署环境2、编写demo测试 四、如何看待Linux内核引入Rust 前言 自Linux 6.1起,初始的Rust基础设施被添加到Linux内核中。此后为了使内核驱动程序能够用Rust编…

第13章 网络 Page744~746 asio核心类 ip::tcp::endPoint

2. ip::tcp::endpoint ip::tcp::socket用于连接TCP服务端的 async_connect()方法的第一个入参是const endpoint_type& peer_endpoint. 此处的类型 endpoint_type 是 ip::tcp::endpoint 在 在 ip::tcp::socket 类内部的一个别名。 libucurl 库采用字符串URL表达目标的地…

Android开机不显示bootloader界面

Turn it off in the following way LINUX\android\bootable\bootloader\edk2\QcomModulePkg\Library\BootLib\MenuKeysDetection.c 试了没有生效 --- a/QcomModulePkg/Library/BootLib/MenuKeysDetection.cb/QcomModulePkg/Library/BootLib/MenuKeysDetection.c-364,7 364,8…

显微测量|台阶仪二维超精密测量微观形貌

台阶仪通过扫描被测样品表面,获取高分辨率的表面形貌数据,能够揭示微观结构的特征和性能。 标题了解工作原理和性能特点 台阶仪利用扫描探针在样品表面上进行微观测量,通过探测探针和样品表面之间的相互作用力,获取表面形貌信息…

数据分析 — 动画图 pyecharts

目录 一、概念二、安装和导入三、绘图逻辑四、绘图1、柱状图2、折线图3、散点图4、饼图5、南丁格尔图6、Geo() 地理坐标第7、Map() 绘制区域8、词云图9、层叠图10、3D 图11、仪表板 一、概念 Pyecharts 是一个基于 Echarts 的 Python 可视化库,它通过 Python 生成 …

云计算基础-快照与克隆

快照及克隆 什么是快照 快照是数据存储的某一时刻的状态记录,也就是把虚拟机当前的状态保存下来(快照不是备份,快照保存的是状态,备份保存的是副本) 快照优点 速度快,占用空间小 快照工作原理 在了解快照原理前,…

WordPress主题YIA移动端文章页的面包屑不显示怎么办?

平时我们一般都会在文章页导航菜单下方显示面包屑,类似于“当前位置:boke112百科 WordPress 正文”。平时用浏览器调试站点的时候,在Edge浏览器的“切换设备仿真”中,不管是选择什么设备都会显示面包屑。具体如下图所示&#xf…

抓包分析 TCP 协议

TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 环境准备 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles&…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序&a…

LeetCode刷题计划

LeetCode刷题计划 推荐 代码随想录&#xff1a;https://github.com/youngyangyang04/leetcode-master 卡码网 练习ACM模式 https://kamacoder.com/ 01 #include <iostream> using namespace std;int main() {int a ,b;while(cin>>a>>b){cout<<ab<…

基于51/STM32单片机的智能药盒 物联网定时吃药 药品分类

功能介绍 以51/STM32单片机作为主控系统&#xff1b; LCD1602液晶显示当前时间、温湿度、药品重量 3次吃药时间、药品类目和药品数量 HX711压力采集当前药品重量 红外感应当前药盒是否打开 DS1302时钟芯片显示当前年月日、时分秒、星期 DHT11采集当前环境温度和湿度 …

【presto权威指南】presto介绍

需求&#xff1a;如何从众多数据源中快速处理数据 现实生产架构多源异构&#xff0c;需要一个强有力的工具&#xff08;抽象&#xff09;统一数据查询/分析 这也是presto/trino从诞生之初便贴数据湖查询工具 tag的原因&#xff0c;presto生来为此 生产环境的困境 1.数据源众多…

无货源?想要1688平台货源,商品采集,第三方API来帮你实现

阿里巴巴(1688.com)批发网是全球企业间(B2B)电子商务的著名品牌&#xff0c;为天下网商提供海量商机信息和便捷安全的在线交易市场。从海量的商品中甄选热销新品、优质好商&#xff0c;为买家采购批发提供风向标。 不少做跨境电商无货源的朋友都想要直接从1688源头厂家拿货&am…