项目经历
项目1:用Java语言实现从生物数据库中挖掘目标序列模式
- 项目简述: 从生物数据库中挖掘出现最频繁的序列模式,生物数据库所要求的序列模式在一定程度上要求间隙约束(即两个位点距离不能相差太远,这个约束由用户定义)。然而, 用户有时候需要针对某个序列片段,挖掘包含这个片段的生物序列。据此,设计了新的研究方法(包括广度优先搜索和深度优先搜索)来进行该任务,并提出剪枝策略来提高算法的效率。
- 负责板块: 研究方案的设定,算法的设计,对既已存在的数据结构-网树(Nettree)进行合理运用,并设计剪枝策略加以编程实现。
- 涉及技术: 用Java进行数据处理,熟练掌握Java的IO输入输出流,文件读取,面向对象编程,集合类List,Set,Map的熟练掌握。
- 达成成果: 算法的运行时间及内存都有明显优化,运行时间相较于baseline算法时间减少1-3个数量级,运行内存减少到原来的20%-60%。
项目2:用Java实现从不确定的具有效用的序列数据库中挖掘概率模型下的高效用序列模式
- 项目简述: 由于设备、传输过程等问题,数据库的内容有可能是不准确的。在具有效用的数据库中,因为序列模式的效用不一定小于子模式的效用,因此通常使用定义效用上界的方法来提前终止序列的扩展从而进行剪枝。在这个背景下,给定一个不确定的概率型数据库,每个项对应有效用、概率两个参数。在这个数据库中挖掘满足效用值不小于用户定义的最小效用阈值的所有高效用序列模式。在这个任务中,我提出了具有概率下效用的计算方法,并提出更加紧凑的效用上界结合剪枝策略来提高算法的效率。
- 负责板块: 效用计算方式的敲定,算法的设计,效用上界的重新评估与设定,剪枝策略的设计,代码实现。
- 涉及技术: 用Java进行数据处理以及随机数生成,熟练掌握Java的IO输入输出流,文件读取,面向对象编程,集合类List,Set,Map的熟练掌握。
- 达成成果: 算法的运行时间及内存都有明显优化,运行时间相较于baseline算法时间减少1-3个数量级,最优时运行内存减少到原来的50%。