进行特征选择、PCA 和标准化的正确顺序?

2024-01-29

我知道特征选择可以帮助我删除贡献度较低的特征。我知道 PCA 有助于将可能相关的特征减少为一个,从而减少维度。我知道标准化会将特征转换为相同的尺度。

但这三个步骤有推荐的顺序吗?从逻辑上讲,我认为我应该首先通过特征选择来剔除不好的特征,然后对它们进行归一化,最后使用PCA来降低维度,使特征尽可能相互独立。

这个逻辑正确吗?

额外问题 - 还有什么事情要做(预处理或转换) 在将特征输入估计器之前?


如果我正在做某种分类器,我个人会使用这个顺序

  1. 正常化
  2. PCA
  3. 特征选择

标准化:您将首先进行标准化以使数据处于合理的范围内。如果你有数据 (x,y) 和范围x is from -1000 to +1000 and y is from -1 to +1您可以看到任何距离度量都会自动表明 y 的变化不如 X 的变化显着。我们还不知道情况是否如此。所以我们想要标准化我们的数据。

PCA:使用数据的特征值分解来查找描述数据点方差的正交基集。如果您有 4 个特征,PCA 可以向您展示只有 2 个特征真正区分数据点,这使我们进入最后一步

特征选择:一旦有了可以更好地描述数据的坐标空间,您就可以选择哪些特征是显着的。通常,您会使用 PCA 中的最大特征值 (EV) 及其相应的特征向量来表示。由于较大的 EV 意味着该数据方向上存在更大的方差,因此您可以在隔离特征时获得更精细的粒度。这是减少问题维度的好方法。

当然,这可能会因问题而异,但这只是一个通用指南。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进行特征选择、PCA 和标准化的正确顺序? 的相关文章

随机推荐

  • 外部车把模板骨干木偶

    在我的应用程序中 我添加了 Marionette sync 插件并覆盖这些方法 Backbone Marionette TemplateCache prototype loadTemplate function templateId cal
  • 具有重复组的正则表达式

    我一直在尝试匹配连字符之间的短语 我意识到我可以轻松地拆分连字符并取出短语 但我的等效正则表达式无法按预期工作 我想了解原因 只是我对短语的定义 只是非捕获空格分隔的连字符 so 正在捕获连字符或行尾 最后 整个内容用括号括起来 量词匹配多
  • AngularJs + ServiceStack 应用程序的安全性

    我有一个前端有四个模块的应用程序 我试图在前端尽可能多地使用 AngularJs 我正在使用一个空的网站 asp net 项目来托管所有文件和 REST serviceStack 我的项目具有以下结构 web config global a
  • ReactJS中子父组件通信

    我喜欢在事件触发时将属性 property props state 值从子组件发送到父组件onDrag 我找不到这方面的正确文档 这是我的代码 jsx React DOM var APP React createClass getIniti
  • jQuery:将 TextArea 内容转换为 html 字符串,反之亦然

    我想做的是将 TextArea 内容转换为有效的 html 代码 假设您在 TextArea 内键入内容 然后按下一个按钮 该按钮会在元素内显示键入的文本 如果您在 TextArea 中输入类似内容 嗨伙计 你喜欢 jQuery 吗 I d
  • Sphinx 过滤器 - 过滤器属性之间可以有“OR”吗?

    我正在使用 sphinx 列出数据库中的一些项目 几乎100 我只是还没弄清楚如何创建一个OR两个不同的过滤器之间 例如 我在数据库中的对象有开始日期和结束日期 我可以filter starting date x y and filter
  • jquery-file-upload 插件:如何更改上传路径?

    我正在尝试使用 blueimp jquery file upload 插件 似乎是一个很好的上传器 但文档没有帮助 当我使用可下载的演示脚本时 一切正常 但是 当我想更改上传路径时 这不起作用 我尝试在index php中更改操作路径 如下
  • Iterable> 无法确认函数中的泛型 T

    这是我的问题 const iterable 1 2 3 function flat
  • ASP.NET Core 使用多种身份验证方法

    同时使用 Cookie 身份验证中间件和 JWT 身份验证中间件 当我登录用户时 我创建自定义声明并将其附加到基于 cookie 的身份 我还从外部源获取一个 jwt 令牌 它有自己的声明 我使用此令牌来访问外部资源 启用身份验证时 我的控
  • 选择列表的字典键和值

    Dictionary
  • RecyclerView 平滑滚动到中心位置。安卓

    我正在使用水平布局管理器RecyclerView 我需要做RecyclerView接下来的方式 当单击某个项目时 平滑滚动到该位置并将该项目放在中心RecyclerView 如果可能的话 例如 从 20 项中选择 10 项 所以 我没有问题
  • 在 postgres 中创建超级用户

    我正在寻找使用 Vagrant 设置 Rails 环境 为此 它是通过 bash shell 方法配置的 其中包括以下行 sudo u postgres createuser
  • Django:从数据库获取一个对象,如果没有匹配的则为“无”

    是否有任何 Django 函数可以让我从数据库中获取对象 或者如果没有匹配则没有 现在我正在使用类似的东西 foo Foo objects filter bar baz foo len foo gt 0 and foo get or Non
  • Laravel 5.5 Collection 哪里喜欢

    我正在使用集合过滤数据 但我需要使用类似的方法 我曾尝试这样写 name LIKE value 但它不起作用 这是我的方法 protected function filterData Collection collection transf
  • 消除“switch”语句[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 消除使用的方法有哪些switch代码中的语句 Switch 语句本身并不是反模式 但如果您正在编写面向对象的代码 则应该考虑是否可以更
  • 在将连续查询添加到生产 influxdb 之前测试连续查询的最佳方法是什么?

    将新的连续查询添加到生产数据库 influxdb 的最佳方法是什么 克隆生产 influxdb 吗 我希望避免这种情况 有没有一种好的方法可以通过网络管理界面来测试和尝试它们 我想你可以 创建临时测量 设置 CQ 插入一些示例数据并在 CQ
  • 删除 Windows Phone 芒果中的后备条目

    我如何删除 wp7 1 中的后退堆栈 我有 3 个页面 当我从 A 导航到 B 时 说 A B C 在 B 中有一个按钮可以添加新的联系方式 当我单击它时 页面导航到页面C 和在页面 C 中有一个 完成 按钮 当我单击 完成 按钮时 页面导
  • 使用 Ecto 的原始 SQL

    我对 Elixir 和 Phoenix Framework 的世界还很陌生 我正在尝试遵循 TheFireHoseProject 教程 但在使用 Ecto 查询原始 SQL 时遇到问题 该教程说这应该有效 defmodule Queries
  • Perl 如何解析未加引号的裸词? (裸词、标识符)

    未加引号的单词在 Perl 中似乎有很多含义 print STDERR msg hash key func param gt arg my x str 如何确定这些的含义 下图显示了 Perl 如何按优先级降序解析标识符 它也适用于由以下链
  • 进行特征选择、PCA 和标准化的正确顺序?

    我知道特征选择可以帮助我删除贡献度较低的特征 我知道 PCA 有助于将可能相关的特征减少为一个 从而减少维度 我知道标准化会将特征转换为相同的尺度 但这三个步骤有推荐的顺序吗 从逻辑上讲 我认为我应该首先通过特征选择来剔除不好的特征 然后对