论文部分内容阅读
LAMOST望远镜建成后,将会产出大量的天体光谱。按照项目系统设计,每个观测夜将获得1~2万光谱数据。面对如此海量的数据,LAMOST急需研究相应的技术和算法。本文根据项目需求分析,研究了适用于LAMOST光谱数据的自动分类算法,并在此基础上设计并实现了天体光谱数据处理与管理软件系统。论文主要工作包括:
●分类判别新方法—覆盖算法。该算法主要由下述两步构成:首先将分类问题转换成一个集覆盖问题,然后通过求解最小支撑覆盖集来完成分类。在该方法中的关键问题是求解最小支撑覆盖集的算法,对此我们提出了四种算法:基于类间最大/最小距离的算法,基于类内最大距离的算法和局部寻优算法。覆盖算法是一种构造性算法,不涉及任何迭代计算,其中的判决函数仅依赖于覆盖集的支撑点并且这些点的数目相对训练样本是非常少的,因此覆盖算法能够有效处理大规模数据的分类问题。将覆盖算法用于天体光谱粗分类,这里粗分类是指正常天体与发射线天体的分类、正常星系与恒星的分类以及星暴星系与活动星系核的分类,大量的模拟光谱和实测光谱的实验结果表明覆盖算法有较高的正确识别率和较强的鲁棒性。
●基于非负矩阵分解(Non-negative Matrix Factorization,NMF)的恒星光谱型分类方法。NMF作为一种新的数据分析方法,具有算法实现简单有效的特点,在高维数据处理中得到了广泛的应用。而且NMF的原始数据矩阵、分解后的基矩阵和特征数据矩阵都保持了非负的特性,因此在特征空间的基具有明确的物理意义。基于非负矩阵分解的恒星光谱型分类方法由下述两步构成:利用NMF对训练恒星光谱进行降维和特征提取,得到特征空间中的基矩阵和数据矩阵,然后在低维空间的特征中,设计分类器实现恒星光谱的分类。我们利用SDSSDR3的七万多恒星数据对该方法进行了实验测试,实验结果表明该方法能够获得较好的分类性能。
●LAMOST光谱自动/交互处理子系统的设计与实现。自动处理子系统设计包括软件系统体系结构设计、用户界面设计、主要的功能模块设计和分类器设计等。在系统的实现过程中,考虑到系统效率问题,底层的核心算法采用了效率较高的标准C/C++语言实现;另一方面,出于对软件升级和扩展性考虑,采用了程序结构化的方式,并且尽量细化功能模块。自动处理子系统开发运行环境是LINUX平台,界面采用功能强大的QT语言开发。交互处理子系统采用两层的系统体系结构:系统架构层(系统界面层)和算法模块层。用户界面采用按钮和菜单的实现方式。系统实现过程中,界面层的开发平台采用了微软新推的DotNET架构,开发语言是面向.NET的全新开发语言C#。算法模块代码采用C/C++语言编写,并编译成动态连接库(DLL)的形式。系统的实现过程是通过用户界面的操作来调用DLL模块以实现相应的任务。天体光谱交互处理系统可以实现主成分分析、光谱预处理、分类训练、光谱识别、红移参数测量等功能。
●LAMOST光谱数据处理与管理软件系统总体设计与实现。在严格遵循软件工程的思想指导下,按照系统的功能需求分析,将系统划分为四个子系统:自动处理子系统、交互处理子系统、数据库查询子系统和知识发现子系统。在分析C/S和B/S两种体系结构的基础上,采用一种混合C/S和B/S的软件体系结构,该体系结构可以实现C/S和B/S互补。通过设计尽可能完整的测试案例,采用白盒与黑盒等测试技术,从单元测试、集成测试到系统测试。测试结果表明,本文所开发的LAMOST光谱数据处理与管理系统具有很好的可靠性,性能达到了预先的设计要求。