C++实习:稀疏数据文件处理程序

本文介绍了一个C++实习项目,旨在处理稀疏数据文件,如LIBSVM的aloi文件。任务包括计算样本数和特征数,从稀疏数据中恢复全部数据,实现正反变换,并对比文件差异及记录运行时间。通过构造文件类和实现相关函数,完成了数据处理和文件操作。
摘要由CSDN通过智能技术生成
1 题目要求

为节省存储空间和提高文件的网络传输效率,数据文件常采用稀疏方式存储,如图像压缩、稀疏编码等技术。而在计算时,又需要从稀疏数据(sparse data)中恢复出原始数据(full data),以便采用向量或矩阵运算。现有如下稀疏数据,如LIBSVM提供的公开数据aloi文件(LIBSVM Data: Classification, Regression, and Multi-label multiclass.html#aloi),格式如下图所示:

文件的第一列表示样本的类别,共有1000类,采用0-999标记;而对于二分类数据,其类别符号采用“+1”和“-1”标示类别。“76:1”表示该样本的第76个属性的值为1,每行中未列出的属性其值为0,故无需在文件中存储。行尾标记符为回车。按要求完成以下任务:

  • 自动计算LIBSVM类型数据的样本数和特征数(属性个数)。
  • 从稀疏文件中恢复出全部数据(去除列标记,每个样本的属性值全部列出,以空格分隔),并将类别标记写入与该文件对应的文本文件中,如记为”aloi_full.txt”和”aloi_label.txt”
  • 为便于共享计算结果,结果仍采用稀疏形式存储和传输,即实现问题2的逆变换。受限于目前知识,本题暂不考虑计算问题,仅要求从格式形如文件”aloi_full.txt”和”aloi_label.txt”,获得稀疏的aloi数据,记为“restore_aloi.txt”.
  • 比对aloi和restore_aloi.txt文件的差异,并记录文件正反变换的时间,将结果回显在屏幕上。
2 需求分析

本题是有关文件处理的问题。首先构造一个文件类其中包含公有型数据成员样本数和特征数,还要公有型成员函数获取类别标记和获取稀疏数据。

  1. 从网站上获取aloi.txt文件,明确样本数指行数,特征数指所有样本中最多的属性个数。所以计算LIBSVM类型数据的样本数即统计行数,计算其特征数即找所有行数中最后一个数据的
  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值