保留细节,我目前正致力于为排名SVM执行成对分类的Java程序。
为了给出一些背景知识,我已经将CSV文件中的内容读取到2D字符串数组列表,在2D数组列表上执行了所有必要的计算,并需要将其写回CSV文件。
但是,在将数据写回空白CSV文件之前,还有一个最后一步。每行的最后一个单元格包含两个值中的一个 - “1”或“-1”。我的目标是确保将数据写回文件,以便有相同数量的数据行(或在1的范围内),最后一个单元格包含“1”或“ - ” 1,“如果这是有道理的。
为了提供一些示例,以下是两个可以写回文件的可接受结果:
[10 20 30 -1]
[12 13 14 1]
[12 13 14 -1]
[34 35 36 1]
和
[10 20 30 -1]
[12 13 14 1]
[12 13 14 -1]
[34 35 36 1]
[20 34 35 -1]
正如您所看到的,在第一个示例中,关于每行的最后一个单元格是“1”或“-1”,行的分布相等,而在第二个示例中,存在分布行的数量,使得最后一个单元格中存在“-1”或“1”的行数之差仅相差1.这些都是可接受的。
所以,我想知道是否有人可以向我提供一些关于如何做到这一点的想法?我目前正在考虑为索引器创建一个随机数生成器,该索引器连续包含基于此随机索引的行,跟踪最后一个单元格中包含“1”或“-1”的行数,仅当我的最终结果中包含一定数量的随机行时停止,以便满足我的相等/几乎相等分布的标准。但是,我不太确定如何设置代码来执行此操作。
谢谢,如果我能提供任何有用的细节,请告诉我。
答案 0 :(得分:1)
这里不需要随机化,你可以做类似以下的事情:
保留2行指针。一个用于+1,一个用于-1。
另一种方法:
创建2套。一个包含+1的行号,另一个包含-1的行号。通过从每组中取一行来交替输出。