面向数据科学的C++:从原始数据到生产级算法
面向数据科学的C++:从原始数据到生产级算法
简介:
本书是连接C++强大功能与数据科学世界的桥梁。在Python主导原型设计的时代,C++仍然是生产级系统中不可或缺的语言,这些系统对速度、内存效率以及实时数据流处理有着严苛要求。作者阿尔乔姆·沃罗诺夫(Artem Voronov)是一位在高负载系统和ML基础设施领域拥有10年经验的工程师,他循序渐进地揭示了如何运用现代C++(C++17/20标准)构建高性能数据处理管道。
本书从基础开始:你将学会如何高效使用STL容器来存储和转换大型数据集,掌握移动语义和智能指针的惯用法以防止内存泄漏,并熟悉标准库中的并行算法。随后,你将进入专项任务:仅使用STL和用于线性代数的Eigen库,实现基本的机器学习算法(线性回归、k近邻、朴素贝叶斯分类器),无需依赖重型框架。
本书特别关注处理无法装入内存的大数据量。你将学习如何编写流处理器、使用内存映射文件,以及通过MPI构建分布式管道。其中有一章专门讲解通过pybind11将C++与Python集成——这将使你能够为现有的Python脚本创建快速的扩展模块。
实践示例包括:基于协同过滤构建推荐系统、从零实现前馈神经网络、优化ETL流程,以及创建自己的时间序列处理库。所有示例均附有使用perf和Valgrind进行的基准测试和性能分析。
本书适合的读者:
- 数据科学家,希望加速模型并从原型过渡到生产级代码
- C++开发者,希望将技能应用于分析和机器学习领域
- 理工科学生,正在学习高性能计算
- 数据处理工程师,从事实时系统和物联网相关工作
读者将学到:
- 如何针对特定分析任务选择数据结构
- 在编译器层面和算法层面的代码优化技巧
- 计算并行化方法(OpenMP、TBB、std::thread)
- 如何对C++程序进行性能分析和调试
- 将C++代码集成到Python生态系统的方法
- 不依赖现成库实现关键ML算法
本书要求读者具备C++基础知识(语法、类、模板)以及统计学的基本概念。作者采用由浅入深的方法:每个新概念都配有可直接运行和修改的工作代码。这不是一本参考手册,而是一本实用指南,旨在帮助那些希望用最强大的编程语言之一编写快速、可靠的数据处理程序的人。