【问题标题】:read a random subset of a csv file in matlab在 matlab 中读取 csv 文件的随机子集
【发布时间】:2013-04-29 01:49:44
【问题描述】:

我有一个 csv 格式的大型 (150000) 数据集。数据集在某些领域存在一些噪音和错误。我想读取这个文件并使用 svm(with libsvm) 对其进行分类。 我需要读取干净且可用的数据子集。选择 10000 个干净的随机记录,并且没有一个字段是嘈杂的。有噪声的文件的值为 0 或 NA。如何用 matlab 做到这一点?

【问题讨论】:

  • 如何简单地读取整个文件,删除嘈杂的行,然后从剩余的行中选择 10000 行随机行?
  • 我同意@Eitan 的观点,认为这是最简单的解决方案。您必须读取整个文件或制作自定义 CSV 解析函数,在处理文件时忽略具有 0 或 NA 值的行。

标签: matlab csv dataset machine-learning svm


【解决方案1】:

如果您想要一个合适的 MATLAB 解决方案,您需要制作一个自定义文件阅读器。不过,这可能不值得付出努力。

我能想到的最快解决方案是在使用 csvread 在 MATLAB 中加载文件之前,使用其他工具(例如 grep)过滤掉所有错误行。如果你有grep,你可以去掉带有'NA'的行:

cat file | grep --invert-match NA > file.filtered

您可以使用 MATLAB 的 csvread 函数读取 file.filtered 而不会出现问题。您可以轻松地从 MATLAB 中删除带有 0 的行。

【讨论】:

    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 2016-02-04
    • 2013-04-06
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多