数据挖掘课程设计.docx
- 文档编号:8971745
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:12
- 大小:162.25KB
数据挖掘课程设计.docx
《数据挖掘课程设计.docx》由会员分享,可在线阅读,更多相关《数据挖掘课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
数据挖掘课程设计
数据挖掘报告
摘要
学生成绩是反映学校教学水平的第一手资料,这些数据可以为学校改进教育教学提供重要依据。
然而,现阶段的学生成绩分析,多数还停留在较为原始的数据库管理和查询阶段,没有对学生的成绩进行横向和纵向的对比研究,也缺乏对各学科成绩之间内在联系的挖掘。
为此,学校将数据挖掘技术与学校学生成绩分析管理系统相结合,通过分析和处理系统中大量的学生成绩数据,寻找潜在的规律及模式,促使学校更好地开展教学工作,提高教学质量。
Abstract
Studentachievementisthefirst-handinformationreflectingtheteachinglevelofaschool.Thesedatacanprovideanimportantbasisforschoolstoimproveeducationandteaching.However,atthisstage,mostofthestudents'performanceanalysisstillstaysintherelativelyprimitivestageofdatabasemanagementandquery.Thereisnohorizontalandverticalcomparativestudyofstudents'performance,noristhereanyexcavationoftheinternallinksbetweentheperformanceofvariousdisciplines.Therefore,theschoolcombinesthedataminingtechnologywiththeschoolstudentachievementanalysismanagementsystem.Byanalyzingandprocessingalargenumberofstudentachievementdata,theschoolseeksforpotentialrulesandpatterns,andpromotestheschooltobettercarryoutteachingworkandimprovethequalityofteaching.
一.项目名称
大学物理,模拟电子技术和计算机组成原理成绩的关系分析
二.项目介绍
大学物理,是大学理工科类的一门基础课程,通过课程的学习,使学生熟悉自然界物质的结构,性质,相互作用及其运动的基本规律,为后继专业基础与专业课程的学习及进一步获取有关知识奠定必要的物理基础。
但工科专业以力学基础和电磁学为主要授课。
通过课程的学习,使学生逐步掌握物理学研究问题的思路和方法,在获取知识的同时,使学生拥有的建立物理模型的能力,定性分析、估算与定量计算的能力,独立获取知识的能力,理论联系实际的能力都获得同步提高与发展。
开阔思路,激发探索和创新精神,增强适应能力,提升其科学技术的整体素养。
通过课程的学习,使学生掌握科学的学习方法和形成良好的学习习惯,形成辩证唯物主义的世界观和方法论。
《计算机组成原理》是计算机科学与技术专业的一门核心专业基础课。
通过本课程的学习,使学生掌握计算机系统的基本组成、计算机中数据的表示方法、计算机各硬件部件的功能和工作原理等,为学生学习计算机专业课打下坚实的基础。
三.项目工具
系统:
win10
软件:
office2010,anaconda
1.MicrosoftOfficeWord
MicrosoftOfficeWord是微软公司的一个文字处理器应用程序。
Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。
一直以来,MicrosoftOfficeWord 都是最流行的文字处理程序。
作为Office套件的核心程序,Word提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。
哪怕只使用Word应用一点文本格式化操作或图片处理,也可以使简单的文档变得比只使用纯文本更具吸引力。
2.MicrosoftOfficeExcel
MicrosoftExcel是Microsoft为使用Windows和AppleMacintosh操作系统的电脑编写的一款电子表格软件。
直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。
在1993年,作为MicrosoftOffice的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。
3.Anaconda:
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。
可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。
Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:
numpy、pandas等。
四.数据文件预处理
在数据挖掘中,海量的原始数据中存在着大量不完整、不一致、有异常的数据,严重影响到数据挖掘建模的执行效率,甚至可能导致挖掘结果的偏差,所以进行数据清洗就显得尤为重要,数据清洗完成后接着进行或者同时进行数据集成、变换、规约等一系列的处理,该过程就是数据预处理。
数据预处理一方面是要提高数据的质量,另一方面是要让数据更好地适应特定的挖掘技术或工具。
1.数据预处理方法:
(1)数据清理
数据清理例程通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。
主要是达到如下目标:
格式标准化,异常数据清除,错误纠正,重复数据的清除。
(2)数据集成
数据集成例程将多个数据源中的数据结合起来并统一存储,建立数据仓库的过程实际上就是数据集成。
(3)数据变换
通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。
(4)数据归约
数据挖掘时往往数据量非常大,在少量数据上进行挖掘分析需要很长的时间,数据归约技术可以用来得到数据集的归约表示,它小得多,但仍然接近于保持原数据的完整性,并结果与归约前结果相同或几乎相同。
由于数据文件信息较多且有很多数据和本课题无关,为了减少资源和时间的浪费,所以在进行分析前先将excel表格进行删减和求和,优化数据,使数据更加直观便于分析。
处理前数据如图4-1所示.处理后数据如图4-2所示。
图4-1表格数据处理前
4-2处理后数据
importpandasaspd
catering_sale='G:
/scour.xlsx'
data=pd.read_excel(catering_sale,index_col=u'学生')
print(data.describe())
print(len(data))
图4-3数据初筛结果
上图中Count代表数量,Mean代表均值,Std代表标准差,Min代表最小值,50%代表中位数,Max代表最大值。
2.异常值的分析
异常值是指样本中的个别值,也称为离群点,其数值明显偏离其余的观测值。
异常值分析是检验数据是否有录入错误以及含有不合常理的数据。
忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,对结果会产生不良影响;重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。
异常值是指样本中的个别值,其数值明显偏离其余的观测值。
异常值也称为离群点,异常值的分析也称为离群点分析。
(1)简单的统计量分析:
我们可以先对采集到的数据做一个描述性的估计,最常用的方法就是最大值与最小值.用来判断这个变量是否超出常规的人们的理解等。
(2)箱型图分析
箱型图是判断是判断数据的异常值的最为直观的一个方法,他的异常值被定义为可能出现在上四分位数以上的部分与下四分位数以下的部分.当然,并不是说在这样的范围内的数都是异常值,但是可以肯定的是,异常值是一定在这里产生的。
为了首先感知我们数据的基本情况,在Python的Pandas库中,只需要读入要处理的数据,然后使用describe()函数,就可以查看数据的基本情况.这里面涉及到数据的很多属性,比如说可以查看缺失值,最小值,最大值等。
这里我们使用了箱型图分析,异常值检测代码如下:
importpandasaspd
catering_sale='G:
/scour.xlsx'
data=pd.read_excel(catering_sale,index_col=u'学生')
importmatplotlib.pyplotasplt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure()
p=data.boxplot(return_type='dict')
x=p['fliers'][0].get_xdata()
y=p['fliers'][0].get_xdata()
y.sort()
foriinrange(len(x)):
ifi>0:
plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05-0.8/(y[i]-y[i-1]),y[i]))
else:
plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i]))
plt.show()
得到的检查结果如下图2-6所示:
4-6异常值检测箱型图
五.数据分析
数据分析是指用适当的统计方法对收集来的大量第一手资料和第二手资料进行分析,以求最大化地开发数据资料的功能,发挥数据的作用。
是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。
数据分析的目的与意义数据分析的目的是把隐没在一大批看来杂乱无章的数据中的信息集中、萃取和提炼出来,以找出所研究对象的内在规律。
1.绘制饼状图
饼状图显示一个数据系列(数据系列:
在图表中绘制的相关数据点,这些数据源自数据表的行或列。
图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。
可以在图表中绘制一个或多个数据系列。
饼状图只有一个数据系列。
)中各项的大小与各项总和的比例。
饼状图中的数据点(数据点:
在图表中绘制的单个值,这些值由条形、柱形、折线、饼状图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。
相同颜色的数据标记组成一个数据系列。
)显示为整个饼状图的百分比。
饼状图是以圆形代表研究对象的整体,用以圆心为共同顶点的各个不同扇形显示各组成部分在整体中所占的比例,要注明各扇形所代表的项目的名称(可用图例表示)及其所占百分比。
饼状图可以比较清楚地反映出部分与部分、部分与整体之间的数量关系.易于显示每组数据相对于总数的大小.而且显现方式直观。
为了使图中数据更加直观,这里使用饼状图,代码如下:
importnumpyasup
importmatplotlib.mlabasmlab
importmatplotlib.pyplotasplt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
labels=['不及格','60-70','70-80','80-90','90-100']
X=[9,17,7,2,0]
fig=plt.figure()
plt.pie(X,labels=labels,autopct='%1.2f%%')
plt.title('大学物理1成绩分布图')
所得到的饼状图为大学物理1,如下图5-1所示:
图5-1物理成绩分布图
按照以上方法,分别得到物理,组成原理,如下图5-2,图5-3,所示:
图5-4组成原理成绩分布图
六.挖掘建模
本课题研究的是对大学物理各个分数段的人及格几率的预测,并通过数据检测,检测是否在计算机组成原理学习中存在困难,并及时给与提醒,根据数据挖掘分析。
1.算法实现过程:
用代码5-1求总的信息熵。
手工测算高数1,高数2对于数据结构及格情况的条件熵。
信息增益=总信息熵-条件熵。
参考信息增益,用信息增益多的作根节点,画出最浅决策树。
2.具体实现代码及过程
(1)利用以下代码将ecxel表格导入list
importxlrd
defcreatData():
file='G:
\离散化.xlsx'
wb=xlrd.open_workbook(filename=file)
ws=wb.sheet_by_name('离散化')
data=[]
forrinrange(ws.nrows):
col=[]
forcinrange(ws.ncols):
col.append(ws.cell(r,c).value)
data.append(col)
labels=['物理','计算机组成原理']
returndata,labels
(2)利用以下代码计算信息熵
frommathimportlog
defshannon_entropy(data):
enteries=len(data)
label_count={}
forvindata:
current_label=v[-3]
ifcurrent_labelnotinlabel_count.keys():
label_count[current_label]=0
label_count[current_label]+=1
entropy=0.0
forkeyinlabel_count:
prob=float(label_count[key])/enteries
entropy-=prob*log(prob,2)
returnentropy
if__name__=='__main__':
data,features=creatData()
print(data)
print(shannon_entropy(data))
决策树图
七.数据挖掘过程
柱状图是一种以长方形的长度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。
柱状图亦可横向排列,或用多维方式表达。
绘制柱状图的代码如下所示:
importmatplotlib.pyplotasplt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
name_list=['不及格','及格','良好']
num_list=[60,49,27]
num_list1=[5,5,9]
x=list(range(len(num_list)))
total_width,n=0.8,2
width=total_width/n
plt.bar(x,num_list,width=width,label='及格',fc='y')
foriinrange(len(x)):
x[i]=x[i]+width
plt.bar(x,num_list1,width=width,label='不及格',tick_label=name_list,fc='r')
plt.legend()
plt.show()
得到如图7-1所示的柱状图
图7-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)