大数据分析实践(理论)试卷(A卷)及答案.docx
《大数据分析实践(理论)试卷(A卷)及答案.docx》由会员分享,可在线阅读,更多相关《大数据分析实践(理论)试卷(A卷)及答案.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大数据分析实践(理论)试卷(A卷)一、数据结构基础题(本大题共1小题, 每题14分,共14分)得分评卷人在Python编程计算应用中,首先要解决的一个问题是数据的表示和存储问题。数值和文本是最常见 的两种数据表现形式,在Python中对应的数据类型为数值和字符串。如何对这些数据进行存储及高 效运算,那么是数据结构设计的问题。Python中常见的数据结构有列表、元组、集合、字典、数组、 序列、数据框,请分别给出这些数据结构的Python定义语句,并选择某些数据结构举例说明它们之 间的联系。Ll=l,2, 3,4, 5,6#列表tl=(l, 2, 3, 4, 6)#元组J1 =l,h,2,3,9#
2、 集合dl=l:,h,2:l,2/k,3:9# 字典zl= numpy. ones (3, 3)并数组sl=pd. Series(l,-2, 2. 3, hq ) #序列数据框的创立:data=a : 2, 2, np nan, 5, 6, b : kl kl kl , np. nan, ? kl c : 4, 6, 5, np. na n, 6, d : 7, 9, np. nan, 9, 8 df=pd. DataFrame(data)联系(列举两至三个即可):1 .数组可以嵌套列表.数据框的创立基于字典,利用Pandas库中的DataFrame函数,可以创立数据框。其中字典的键 转化为列
3、名,字典的值转化为列值,而索引为默认值,即从0开始从小到大排列。得分评卷入二、数据可视化基础题(本大题共1小题,每题14分,共14分)数据可视化是数据分析与挖掘中一个非常重要的任务。数据可视化是通过各种类型的图像来展现 数据的分析结果或者分析过程,从而提高分析的效率和可读性。利用Python的Matplotlib包中的tf.keras.layers.Dense(64, activation=,relu,),tf.keras.layers.Dense( 1) )#自定义RMSprop优化器,学习率是0.001optimizer 二 tf.keras.optimizers.RMSprop(O.OO
4、l)model pile(loss=,mse #损失用 mseoptimizer=optimizer, metrics=,mae, !mse) return model#模型实例化model = build_model()卷积神经网络Python调用语句:#CNN模型构建model = models.Sequential()#卷积层#input_shape表示卷积层输入、filter:卷积核大小#stride:卷积步长#padding:控制卷积核处理边界的策略,激活函数用relumodel.add(layers.Conv2D(input_shape=(32, 32, 3), filters=3
5、2, kernel_size=(3,3), strides=(l,l), padding=valid:activation二Telu) #32个卷积核,卷积核大小3X3# 池化层,最大池化抽样,窗口是2*2model.add(layers.MaxPool2D(pooI_size=(2,2)# 卷积层,64个卷积核,卷积核大小3X3model.add(layers.Conv2D(filters=64,kemel_size=(3,3), strides=(l,l),padding=valid,activation二Telu)# 池化层,窗口是2*2model.add(layers.MaxPool2
6、D(pool_size=(2,2)# 卷积层,64个卷积核,卷积核大小3X3model.add(layers.Conv2D(filters=64, kemel_size=(3,3), strides=(l,l), padding=,valid,activation=,relu,)# 全连接层、flatten)将卷积和池化后提取的特征摊平后输入全连接网络,model.add(layers.Flatten()model.add(layers.Dense(128, activation二Telu)# 分类层-输出10个种类分类model.add(layers.Dense( 10)循环神经网络Pyth
7、on调用语句:model = Sequential。# 嵌入层model. add(Embedding(max_features,#词汇表大小中收录单词数量,也就是嵌入层矩阵的行数128,#每个单词的维度,也就是嵌入层矩阵的列数input_length=maxlen) # 一篇文本的长度文本单词转换成向量之后,就可以搭建循环神经网络了,本例用tensorflow框架下的LSTM () 方法实现,构建128层的LSTM层,输出层用Dense。方法,由于是二分类问题,输出的是1, 例如代码如下:#定义LSTM隐藏层model.add(LSTM( 128, dropout=0.2, recurren
8、t_dropout=0.2)#模型输出层得分评卷人model.add(Dense( 1, activation=sigmoid*)五、综合应用题(本大题共1小题,每题30分,共30分)请你选择某个研究课题或者正在进行的研究课题或者大作业,结合本课程的内容进行课程作品设计。(选择某个作业或者课程设计或者大赛相关案例进行设计即可,但是不能选用教材上的案例,以下以上市公司百度新闻情感分析为例) 作品内容包括:1)GUI可视化界面设计,要求界面布局合理、美观,同时具有较好的可读性(10分)。上市公司百度新闻情感分析首先下载软件PyCharm并安装,然后在PyCharm中配置PyQt5的环境,点击Fil
9、e选择Settings, 在Tools添加并设置QtDesigner和PyUCI两个工具,如图5.2所示。QtDesigner设置,如图5.3 所示;PyUCI设置,如图5.4所示。El SettingsTools External Tools J External ToolsJ QtDesigner PyUCI Appearance & Behavior KeymapEditor Plugins Version Control哺Project: untitled哂 Build, Execution, Deployment Languages & Frameworks ToolsWeb Bro
10、wsersExternal ToolsTerminal哂A Diff & Merge图 5.2 External Tools 工具设置 Edit ToolName:Name:QtDesignerGroup:External ToolsDescription: Advanced OptionsOKOKCancel图 5.3 QtDesigner 设置 Edit ToolName:PyUCIGroup:Description:External ToolsTool SettingsProgram:C:ProgramDataAnaconda3python.exeArguments:-m PyQt5.
11、uic. pyuic $FileName$ -o $FileNameWithoutExtension$. pyWorking directory:$FileDir$ Advanced OptionsOKOKCancel图5.4 PyUCI设置由此,PyQt5的环境就已经配置好了。接下来在工程文件夹的Pycharm开发环境中,在标题栏中的Tools中的External Tools翻开工具QtDesigner,翻开前面配置的外部工具QtDesigner,进入Qt设计师窗口,如图5.5与图5.6所示。File Edit yiew Navigate ode Refactor RynToolsVC$ W
12、indow Help上市公司新闻情冢分析 PyChai上市公司新闻信息分析Tasks & ContextsProject -r U 上市公司新闻情爱分析上市 lllli External LibrariesG Scratches and ConsolesSave as Live Template. Save File as Template. IDE Scripting Console XML ActionsExternal Tools QtDesignerStack Trace or Thread Dump.Python or Debug ConsoleSync Python Require
13、ments.Create setup.pyRun setup.py Task.Sphinx QuickstartPyUCISearch EverywhereGo to File Ctrl+Shif图5.5 新建窗体 Qt DesignerXtemplatesforms Dialog with Buttons Bottom Dialog with Buttons Right Dialog without Buttons Main Window Widget窗口部件诳入式设计无默认大小无默认大小设备:屏幕大小:0启动时显示这个对话框一创立(R) 翻开(。)二厂 最近的 关闭(0图5.6 Qt设计师
14、窗口在该窗口下点击“Main Window”创立主窗体设计界面,从控件栏中拖拽一个Tree Widget树按 钮用来显示行业名称,拖拽两个pushButton按钮,依次命名为“情感分析”、“退出系统”,再拖 拽一个Table View表格按钮用来输出并显示数据。如图5.7所示。口口口将当R叫DJ胃州主控名L5J图5.7主窗体创立系统界面单击保存图标,即可保存设计的界面,其文件名与创立的工程文件夹名称相同,文件名后缀为U,默认情况下保存在工程文件下。可以在Pycharm环境下,右键ui界面文件,选择 “Tools/ExternalTools/PyUCI(前面配置的夕卜部工具),即可自动生成Pyt
15、hon程序代码,至此上市 公司百度新闻情感分析可视化演示系统界面设计就完成了。2) GUI系统设计、功能逻辑实现,要求有一定的流程图辅助说明,同时附上关键实现代码(10分)。初始化树结构初始化下拉框单击回调函数的实现根据.ui文件生成的.py文件,作者将它命名为main.py,在main.py中添加相关代码,从而实 现该系统的功能。本系统实现的功能包括运行主程序main.py,弹出上市公司百度新闻情感分析可视化演示界面。 点击treeWidget树结构下某个节点,选择某个日期,显示该日期下对应节点的所有上市公司新 闻标题,并展示出来。同时,单击“情感分析”按钮,对这些新闻调用训练好的支持向量机
16、情感 识别模型进行情感识别,同时输出预测结果,并展示出来。同时选择积极新闻,那么输出预测为积 极的新闻。同理可点击消极新闻、中性新闻,输出对应的结果。单击该页面下的“退出系统”按 钮,将退出整个系统。由此,整个系统的功能就实现完毕了。接下来介绍整个系统实现的基本思 路。该界面实现的功能包括初始化树结构内容,在类初始化函数中对其修改即可实现。除此外之 外还包括树单击事件回调函数、选择下拉框回调函数,单击按钮回调函数。下面详细进行介绍。 初始化树结构对树结构初始化内容,可以通过从Tushare金融大数据社区获取上市公司的信息数据,从而获得 中国所有上市公司的行业名称,用一个列表来存放;以“行业分类
17、名称”命名为根节点,通过一 个循环把所有行业分类名称依次添加到根节点下面。可以在初始化函数中添加例如代码如下:data = pd.read_excel(上市公司信息.xlsx)ind = data.iloc:, 4.value_counts()indname = list(ind.index) #所有行业分类名称 root = QTreeWidgetltem(self.treeWidget) root.setText。行业分类名称,) root.setText(l, 0)for i in range(len(indname):child = QTreeWidgetltem(root)child
18、.setText(0, indnamei)child.setText(l, str(i)其中“上市公司信息,xlsx”即为我们从Tushare金融大数据社区获取上市公司的信息数据。初始化下拉框本系统共有两个下拉框,一个为时间下拉框,一个为情感标签下拉框。对时间下拉框初始化内容, 可以通过从百度爬取的上市公司新闻数据中获得时间,用循环读取时间,并将时间值唯一化,再 将时间添加进选择时间的下拉框中。可以在初始化树下方添加例如代码如下:Data = pd.read_excel(上市公司新闻.xlsx)#时间选择times =for i in Data.ilocf:, 2:times.append(s
19、tr(i).split(, l)00:ll)times = pd.Series(times).unique()times = list(times:-l)self boBox.addltems(times) #将时间添加进,时间选择的下拉框,self boBox.activated str.connect(self.times_values) # 判断用户是否选择时间其中,上市公司新闻.xlsxi为上市公司百度新闻爬取的数据。对于情感标签下拉框,可以直接进行选择命名,例如代码如下:$0|80080_236|他015(积极丁中性丁消极)self boBox_2.activated str.con
20、nect(self.xw_values)5.43单击回调函数的实现关于树单击回调函数的实现,与相关下拉框一同实现。单击树中的节点,即选中对应的行业名称, 同时选择日期,那么在表格控件中显示该行业对应公司的新闻结果。可以通过定义一个fun函数来 实现,这个函数在树单击回调与单击下拉框回调中使用,其中fun函数定义例如代码如下:def fun(selt riqi):riqi = str(riqi)item = self.treeWidget.currentltem()data = pd.read_excel(上市公司新闻.xlsx)data = data.locdata.iloc:, 3 = it
21、em.text(O)datal = data.locdata.iloc:,2 = riqi #判断日期dataselect =datal.to_excel(,dataselect.xlsx,index=False)。将选择过日期的数据进行保存datal = datal.reindex(columns 二厂公司名称冒新闻标题)1 日期1)self.model = QStandardltemModel(len(data)/ 3)(公司名称冒新闻标题/日期)for r in range(len(datal):for c in range(3):a = Q.Standardltem(str(datal
22、.ilocr/ c)self.model.setltem(r, c, a)self.tableView.setModel(self.model)最后,将树与下拉框单击回调函数关联到树与下拉框单击事件函数中,可以通过以下命令来实现: self.treeWidget.clicked.connect(self. selectname)self boBox.currentlndexChangedstr.connect(self.fun)对于单击按钮回调函数的实现,系统一共有两个按钮,一个为情感分析按钮,一个为“退出系 统”按钮。“情感分析”按钮关联一个fun2函数,该函数用来对目前选择的新闻进行情感分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 分析 实践 理论 试卷 答案
限制150内