一年一度的 CCF大数据与计算智能大赛(简称2024 CCF BDCI大赛)又开始啦~~
程序员们可冲一波嗷~
大赛地址:http://go.datafountain.cn/6506
现在我们再次释放往届获奖方案,
为新一届大赛的同学们提供一些方案和灵感参考~
大家借鉴借鉴,好好加油哇~
期待你今年能在大赛中斩获满意的奖项哟~
本篇内容为2023 CCF 大数据与计算智能大赛
《文心一言插件设计与开发》赛题
三等奖获奖方案
方案名称:NoteTable
赛题地址:https://www.datafountain.cn/competitions/977
获奖团队:AD_F
本团队成员由辽宁大学计算机科学与技术专业的三名学生组成。
队长于荣辉,参加过包括程序设计、网络安全、数学建模等多个领域20余项竞赛,获国家级奖项3项,省奖10余项,有丰富的软件开发和数据分析算法经验。
队员刘佩萱、马福旺也曾参加过多次数学竞赛、数学建模竞赛,并获得奖项。
在这样的前提下,整个团队以文心一言大模型为根基,以优秀算法为保障,结合自己的理解,开发了文心一言插件NoteTable,力求拓展多模态能力。
摘要
NoteTable是一款个性化的Excel处理工具,专注于简化数据分析和处理流程。使用Python Statsmodels中的ARIMA模型,以及Pandas、Requests库进行数据分析,提供灵活的数据处理能力。弥补文心一言模型容易计算偏差,难以作微观分析的缺点,发扬了文心一言优秀的解释能力和多模态功能,省去编程,让零基础的人也可以完成并且读懂科学的数据分析,让有基础的人实现更便捷的绘图。
该插件提供了多种功能,使用户能够轻松上传CSV文件,进行数据分析,实现高效数据处理和绘图。成功实现了文心一言上科学准确的数据分析。
关键词
数据分析 数据处理 绘图 ARIMA预测模型
1 作品背景
1.1 作品简介
NoteTable是一款个性化的Excel处理工具,专注于简化数据分析和处理流程。使用Python的Statsmodels中ARIMA模型,以及Pandas,Requests库进行数据分析,提供灵活的数据处理能力,该插件提供了多种功能,使用户能够轻松上传CSV文件,进行数据分析,并通过内部模型实现高效数据处理。
1.2 作品价值
应用场景:NoteTable适用于需要进行数据分析和处理的用户,尤其在处理CSV文件、进行时间序列数据分析以及进行数据可视化方面具有广泛应用。
商业/社会价值: 该插件为用户提供了一个灵活而强大的工具,可以提高编程和数据分析的效率。在商业上,可以帮助企业更好地理解和利用其数据资源,从而做出更明智的决策。
1.3 作品创新点
- 利用Python的ARIMA库进行精准的时间序列数据分析。
- 提供了绘图功能,直观展示数据分析结果。
- 可以通过API端点以字典和文件形式上传数据等,为用户提供了更灵活的操作方式。
2 工具类的实现和原理
2.1 工具类的原理
2.1.1 时间序列分析方法
时间序列分析法中的移动平均法可以作为一种数据平滑的方式,我们计划使用它来对csv文件中的数据进行预测。
设观测序列为时间序列,取移动平均的项数N<t>。一次移动的平均值计算公式为:
当预测目标的大致趋势是在某一水平上下波动时,我们可以采用一次移动平均的方法来建立预测分析模型进行预测分析
其预测标准误差为
2.1.2 ARIMA模型的建立与预测
ARIMA模型全称是自回归差分移动平均模型,主要由自回归模型AR,差分过程和移动平均模型MA三部分构成。
其中,AR部分用来处理时间序列的自回归部分,考虑了过去一些时期的观测值对目前值的影响。部分用来使非平稳时间序列达到平稳,通过一阶或者二阶等差分处理,消除了时间序列中的趋势和季节性因素。MA部分用来处理时间序列的移动平均部分,考虑了过去的预测误差对目前值的影响。
ARIMA模型可以被看作是AR模型和MA模型的直接结合,从形式上来看,可以将ARIMA模型的公式表示为:
Yt是我们正在考虑的时间序列数据。
到
是AR模型的参数,这些参数用来描述当前值与过去p个时间点值之间的关系。
到
是MA模型的参数,这些参数用来描述当前值与过去q个时间点的误差之间的关系。
是在t时间点的误差项。
c是一个常数项。
2.2. 工具类的实现
Statsmodels是一个用于进行统计分析和建模的Python库,主要用于对时间序列数据进行分析,比如预测未来的趋势。Statsmodels提供了一系列实用的工具,特别适用于处理统计模型,其主要特点包括时间序列分析,支持各种统计模型的拟合,提供假设检验工具,以及可视化工具。这些功能帮助我们分析数据、建立模型,以及验证模型的有效性。
该代码通过采用Statsmodels对ARIMA模型的残差进行了一系列严格的统计检验,以验证模型的拟合效果和残差的随机性。其中,Jarque-Bera检验通过对残差的偏度(Skewness)和峰度(Kurtosis)进行综合评估,评估了残差是否符合正态分布。Ljung-Box检验则用于检测残差序列是否存在自相关性,即序列中的值是否与其自身在不同时间点上存在显著相关性。最后,Durbin-Watson检验用于检测残差序列中是否存在自相关性。
这些高级的残差检验不仅可以提供有关模型拟合质量的信息,还能帮助确定模型是否足够捕捉时间序列中的信息。通过这些检验,可以更全面地评估ARIMA模型的适用性和性能,从而提高时间序列预测的可靠性和准确性。
3 插件设计说明
3.1 插件功能点
功能点 | 功能描述 |
数据展示与上传 | 通过/get_Data端点,展示数据列表,支持上传CSV文件进行更复杂操作。 |
数据分析 | 利用ARIMA库,/analyze_from_csv端点从URL中进行时间序列数据分析。 |
绘图功能 | /draw_from_csv端点允许用户进行数据可视化,展示分析结果。 |
3.2 插件工作流程
插件流程图1
3.3 数据和信息说明
插件涉及的数据包括上传的CSV文件数据、远程文件URL地址,以及通过API端点传递的字典格式数据。
3.4 能力和服务说明
NoteTable插件使用Python的statsmodels中ARIMA模型,以及pandas,requests库进行数据分析,提供灵活的数据处理能力。通过API端点,用户可以方便地上传、分析、绘图和管理数据。
4 插件成熟度
4.1 多模态输入能力
本插件具有多种输入能力,支持文件,字典自动识别,进行数据导入,有良好的数据兼容性。
图1:文件输入
图2:字典输入
4.2 绘图能力
具有矢量图适配功能,单独支持折线图柱状图等,可结合E言易图支持饼图、雷达图、散点图、漏斗图、思维导图(树图),图片可以保存导出。由于篇幅限制,不过多展示。
4.3 多模型的分析能力
模型目前包括预测模型ARIMA,具有多种输出模式。
图4:图表返回
图5:表格返回
图6:专业返回
5 作品总结与展望
在NoteTable插件的开发过程中,我们成功实现了数据分析、绘图等核心功能。未来,我们计划优化用户界面,增加更多数据处理功能,并考虑与其他数据分析工具集成,以提供更全面的解决方案。
未来我们将做出更优秀的模型,关联分析,聚类分析,神经网络分析等,也会提供更多的图片类型,如热力图,箱线图等,提供更多的数据适配方式,如文本,json文件等,最重要的是,我们将利用AI去实现自适应,自适配,提供合理的数据分析建议。
6 致谢
目前NoteTable还有很多可能等着我们去开发,感谢您的使用和理解。未来,NoteTable将实现聚类、关联分析等数据分析模式,也会添加更多的数据处理方式。我们团队将不忘初心,牢记初衷,将它打造成大模型分析的利器。
参考
[1] Statsmodels:Econometric and statistical modeling with PythonStatsmodels
[2] Jones, E., Oliphant, T., & Peterson, P. (2001)
[3] Enders, W. (2014). Applied Econometric Time Series. [Enders, W. (2014). Applied Econometric Time Series. John Wiley & Sons.]