对具有大量零特征的数据进行归一化/标准化是否有利

2024-03-24

我拥有大约 60 个特征的数据,在我的训练数据中,大多数情况下大多数情况下都为零,只有 2-3 列可能有值(准确地说是其性能日志数据)。但是,我的测试数据在其他一些列中会有一些值。

我已经完成了归一化/标准化(分别尝试了两者)并将其提供给 PCA/SVD(分别尝试了两者)。我使用这些功能来拟合我的模型,但是它给出的结果非常不准确。

然而,如果我跳过归一化/标准化步骤,直接将数据输入 PCA/SVD,然后输入模型,它会给出准确的结果(几乎高于 90% 的准确度)。

P.S.:我必须使用隔离森林算法进行异常检测。

为什么这些结果会有所不同?


标准化和标准化(取决于来源,它们有时被等效使用,所以我不确定在这种情况下每一个的确切含义,但这并不重要)是一般性建议,通常在数据存在的问题中效果很好或多或少均匀分布。然而,根据定义,异常检测并不是那种问题。如果您有一个数据集,其中大多数示例属于类A只有少数属于班级B,有可能(如果没有必要)稀疏特征(几乎总是为零的特征)实际上对您的问题具有很大的辨别力。对它们进行标准化基本上会将它们变成零或几乎为零,从而使分类器(或 PCA/SVD)很难真正掌握它们的重要性。因此,如果跳过标准化,您会获得更好的准确性,这并不是没有道理的,而且您不应该仅仅因为“应该这样做”而觉得自己做“错”了

我没有异常检测的经验,但我有一些不平衡数据集的经验。您可以考虑某种形式的“加权归一化”,其中每个特征的均值和方差的计算都使用与类中示例数量成反比的值进行加权(例如examples_A ^ alpha / (examples_A ^ alpha + examples_B ^ alpha), with alpha一些小的负数)。如果你的稀疏特征具有非常不同的尺度(例如,一个在 90% 的情况下为 0,在 10% 的情况下为 3,另一个在 90% 的情况下为 0,在 10% 的情况下为 80),你可以将它们缩放到公共范围(例如 [0, 1])。

无论如何,正如我所说,不要仅仅因为技术应该有效就应用它们。如果某些东西不适用于您的问题或特定数据集,您有理由不使用它(并尝试理解why它不起作用可能会产生一些有用的见解)。

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

对具有大量零特征的数据进行归一化/标准化是否有利 的相关文章

随机推荐

  • 如何仅迭代元组的第一个变量

    在Python中 当你有一个元组列表时 你可以迭代它们 例如 当你有 3d 点时 for x y z in points pass do something with x y or z 如果您只想使用第一个变量 或者第一个和第三个变量 该怎
  • case 表达式中是否可以使用不同的数据类型?

    我有这个查询 SELECT CASE WHEN dbo CFE PPHY P77 IS NOT NULL OR dbo CFE PPHY P77 lt gt THEN MONTH dbo CFE PPHY P77 WHEN dbo CFE
  • 直接使用GET和POST有哪些漏洞?

    我想知道有哪些漏洞而直接使用 GET 和 POST 变量 即没有修剪和addslashes函数和mysql转义字符串之类的东西 我的问题是 我们还需要照顾什么在使用 GET 和 POST 时 有哪些类型的攻击比如SQL注入 一般来说 不仅限
  • 将字符串转换为类对象[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我使用将类对象存储到字符串中toSt
  • 如何将一个巨大的文件分割成多个单词?

    如何从文本文件中读取很长的字符串 然后对其进行处理 拆分为单词 我尝试过StreamReader ReadLine 方法 但我得到了OutOfMemory例外 显然 我的队伍非常长 这是我的读取文件的代码 using var streamR
  • 日期范围内的日期范围

    实际上这个任务对我来说似乎很容易 但我有点卡住了 非常感谢一些提示 D 我有一些带有开始和结束时间的事件 我想创建一个包含日历周的表格 因此 我编写了一个方法来检查本周内是否有事件 并将其着色如下 private boolean inWee
  • 通过 f11 启用全屏后通过 javascript 禁用全屏

    通过按下面的按钮 我可以启用和禁用全屏模式 但按下 f12 后 我无法禁用全屏模式 我参考了其他答案 他们只提供了一种方法来检测窗口是否处于全屏模式 我是无法获取从全屏禁用全屏模式的代码 通过 f11 键制作 我尝试通过代码触发 f11 但
  • 以 PDF 形式通过电子邮件发送 Google 表格

    我有这个脚本 它通过电子邮件向我发送 Google 电子表格的 PDF 我只希望它通过电子邮件将第一个 选项卡 发送给我 如果可能的话 将其作为单个 PDF 或 zip 文件发送给我 想知道是否有人可以提供帮助 另外 其中一个 选项卡 是隐
  • 使用 Rcpp 将目标文件链接到函数的简化示例[重复]

    这个问题在这里已经有答案了 我现有的 C 代码由三个文件组成 头文件 h 文件 库文件 o 文件 和源文件 它们目前在 UNIX 下运行 并在 Matlab 中编译为 mex 文件 我想使用 Rcpp 将它们移植到 R 它们都又长又复杂 所
  • R中的随机森林对训练数据的大小有限制吗?

    我正在使用我的训练数据训练随机森林 该数据有 114954 行和 135 列 预测变量 我收到以下错误 model lt randomForest u b stars data traindata importance TRUE do tr
  • 可以通过 XML 定义 bean 构造型吗?

    是否可以通过 XML 定义 bean 构造型 如下
  • 在 pandas 中高效使用替换

    我正在寻找使用replace在 python3 中以有效的方式运行 我拥有的代码正在完成任务 但速度太慢 因为我正在处理大型数据集 因此 每当需要权衡时 我的首要任务是效率而不是优雅 这是我想做的一个玩具 import pandas as
  • listview onScroll 方法中某些项目为空

    我有一个列表视图 我重写了它的 onScroll 事件 以便我可以获取列表视图的第一个可见项目上的文本的第一个字符 我的代码如下 Override public void onScrollStateChanged AbsListView v
  • Material-ui 工具提示无法正常工作

    我正在尝试使用material ui 工具提示 我希望工具提示显示在顶部 即使设置后placement top 演示可以找到here https codesandbox io s yjrq3lkk29 我在这里做错了什么 因为页面没有足够的
  • 仅允许在 WPF 文本框中输入数字

    我想验证用户输入以确保它们是整数 我该怎么做 我想用IDataErrorInfo这似乎是在 WPF 中进行验证的 正确 方法 所以我尝试在我的 ViewModel 中实现它 但问题是我的文本框绑定到一个整数字段 并且不需要验证是否int i
  • 多指标散点图

    假设我有以下数据 data Value 1 1 3 0 1 2 4 0 1 3 51 0 1 4 10 0 1 5 2 0 1 6 17 0 1 7 14 0 1 8 7 0 1 9 2 0 1 10 1 0 df pd DataFrame
  • 在不同的子域上使用 Socket.IO 服务器和客户端

    我有两个子域 socket mydomain com Socket IO 服务器 app mydomain com 我想连接到我的网络套接字的网络应用程序 在 app mydomain com 的登陆页面中 我已链接到 Socket IO
  • 使用 IIS-Express 激活压缩(尤其是动态压缩)

    是否可以在 IIS Express 上启用动态压缩 针对 WCF 服务 这是一个开发环境问题 因此我无法使用完整版本 但我需要弄清楚它在压缩时的表现如何 进入 IIS Express 安装文件夹 programfiles IIS Expre
  • 如何在最新的Next.js中获取服务器端数据?尝试了 getStaticProps 但它没有运行并且未定义

    我正在使用 Next js 开发 Django Rest 框架 但我陷入了从 API 获取数据的困境 我在这个网址中有数据http 127 0 0 1 8000 api campaigns当我访问该网址时 我会看到数据 问题是当我使用 Ne
  • 对具有大量零特征的数据进行归一化/标准化是否有利

    我拥有大约 60 个特征的数据 在我的训练数据中 大多数情况下大多数情况下都为零 只有 2 3 列可能有值 准确地说是其性能日志数据 但是 我的测试数据在其他一些列中会有一些值 我已经完成了归一化 标准化 分别尝试了两者 并将其提供给 PC