通俗讲,赛题打算通过研究现有数据的规律,然后对新数据进行二分类。
赛题大体上可以分为四部分,数据读取与转换,模型训练,模型预测和结果文件生成。
- 数据读取与转换
- 主线程通过mmap对文件进行映射,得到数据指针
- 四个线程从指针四等分处对字节进行处理,通过自己编写的myatof函数转为具体数据
- 模型训练
- 极其简化的K-Means分类,使用1000个特征维度
- 子线程读取训练文件的四部分,主线程得到0和1两个类别的平均中心
- 模型预测
- 将测试文件进行读取与转换,设置阈值对第一个维度的数据进行过滤
- 小于阈值的使用类别中心和欧氏距离对该行数据进行分类,大于阈值的直接赋值为类别1
- 结果文件生成
- 模型预测时生成的类别类型为char,而不是int型
- 每行数据预测后,生成类别+换行符,主线程通过fwrite写入文件