OpenCV机器学习算法的CSV格式

3

OpenCV中的机器学习算法似乎使用以CSV格式读入的数据。例如,可查看这个cpp文件。使用以下代码将数据读入OpenCV机器学习类CvMLData

CvMLData data;
data.read_csv( filename ) 

然而,目前还没有关于csv文件所需格式的文档。有人知道csv文件应该如何排列吗?

其他(非Opencv)程序通常每个训练样本有一行,并以整数或字符串表示类标签。


请参阅此链接,除了介绍性描述外,还可以查看有关数字/分类值的详细信息,包括CvMLData::read_csv的描述。 - fotNelton
谢谢,我已经阅读了那篇文章并从中获得了一些见解,但它并没有真正给出所需文件格式的绝对、具体描述,特别是每行中类标签的位置、类标签所需的格式(整数、字符串等)以及特征向量格式等。 - Bill Cheatham
1个回答

2
如果我阅读该类的源代码,特别是str_to_flt_elem函数和类文档,我得出结论:文件中单个项目的有效格式为:
  1. 任何可被strod解析为double的内容
  2. 问号(?)或空字符串表示缺失的值
  3. 任何无法解析为double的字符串。
项目1和项目2仅适用于特征。由项目3匹配的任何内容都被认为是类标签,据我推断,项目的顺序无关紧要。read_csv函数会自动为csv文件中的每一列分配正确的类型,并且(如果您想),您可以使用set_response_index覆盖标签。您可以使用默认值(,)或在调用set_delimiter之前将其设置为任何您喜欢的分隔符(只要不使用小数点)。因此,例如对于包含3个特征的3类6个数据点,这应该有效。
A,1.2,3.2e-2,+4.1
A,3.2,?,3.1
B,4.2,,+0.2
B,4.3,2.0e3,.1
C,2.3,-2.1e+3,-.1
C,9.3,-9e2,10.4

你可以将文本标签移动到任何你想要的列,甚至可以有多个文本标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接