资源描述
数 据 挖 掘 报 告
目 录
一.项目名称 5
二.项目介绍 5
三.项目工具 5
1.Microsoft Office Word 6
2.Microsoft Office Excel 6
3.Anaconda: 6
四.数据文件预处理 7
1.数据预处理方法: 7
(1)数据清理 7
(2)数据集成 7
(3)数据变换 8
(4)数据归约 8
2.异常值的分析 10
(1)简单的统计量分析: 10
(2)箱型图分析 10
五.数据分析 12
1.绘制饼状图 12
六.挖掘建模 14
1.算法实现过程: 14
2.具体实现代码及过程 15
七.数据挖掘过程 16
摘 要
学生成绩是反应学校教学水平第一手资料,这些数据能够为学校改进教育教学提供主要依据。然而,现阶段学生成绩分析,多数还停留在较为原始数据库管理和查询阶段,没有对学生成绩进行横向和纵向对比研究,也缺乏对各学科成绩之间内在联络挖掘。为此,学校将数据挖掘技术与学校学生成绩分析管理系统相结合,经过分析和处理系统中大量学生成绩数据,寻找潜在规律及模式,促使学校愈加好地开展教学工作,提升教学质量。
Abstract
Student achievement is the first-hand information reflecting the teaching level of a school. These data can provide an important basis for schools to improve education and teaching. However, at this stage, most of the students'performance analysis still stays in the relatively primitive stage of database management and query. There is no horizontal and vertical comparative study of students' performance, nor is there any excavation of the internal links between the performance of various disciplines. Therefore, the school combines the data mining technology with the school student achievement analysis management system. By analyzing and processing a large number of student achievement data, the school seeks for potential rules and patterns, and promotes the school to better carry out teaching work and improve the quality of teaching.
一. 项目名称
大学物理,模拟电子技术和计算机组成原理成绩关系分析
二. 项目介绍
大学物理,是大学理工科类一门基础课程,经过课程学习,使学生熟悉自然界物质结构,性质,相互作用及其运动基本规律,为后继专业基础与专业课程学习及深入获取关于知识奠定必要物理基础。但工科专业以力学基础和电磁学为主要讲课。经过课程学习,使学生逐步掌握物理学研究问题思绪和方法,在获取知识同时,使学生拥有建立物理模型能力,定性分析、估算与定量计算能力,独立获取知识能力,理论联络实际能力都取得同时提升与发展。开阔思绪,激发探索和创新精神,增强适应能力,提升其科学技术整体素养。经过课程学习,使学生掌握科学学习方法和形成良好学习习惯,形成辩证唯物主义世界观和方法论。
《计算机组成原理》是计算机科学与技术专业一门关键专业基础课。经过本课程学习,使学生掌握计算机系统基本组成、计算机中数据表示方法、计算机各硬件部件功效和工作原理等,为学生学习计算机专业课打下坚实基础。
三. 项目工具
系统:win10
软件:office,anaconda
1.Microsoft Office Word
Microsoft Office Word是微软企业一个文字处理器应用程序。Word给用户提供了用于创建专业而优雅文档工具,帮助用户节约时间,并得到优雅美观结果。一直以来,Microsoft Office Word 都是最流行文字处理程序。作为 Office 套件关键程序, Word 提供了许多易于使用文档创建工具,同时也提供了丰富功效集供创建复杂文档使用。哪怕只使用 Word 应用一点文本格式化操作或图片处理,也能够使简单文档变得比只使用纯文本更具吸引力。
2.Microsoft Office Excel
Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统电脑编写一款电子表格软件。直观界面、出众计算功效和图表工具,再加上成功市场营销,使Excel成为最流行个人计算机数据处理软件。在1993年,作为Microsoft Office组件公布了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处理后数据
import pandas as pd
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)箱型图分析
箱型图是判断是判断数据异常值最为直观一个方法,他异常值被定义为可能出现在上四分位数以上部分与下四分位数以下部分.当然,并不是说在这么范围内数都是异常值,不过能够必定是,异常值是一定在这里产生。为了首先感知我们数据基本情况,在PythonPandas库中,只需要读入要处理数据,然后使用describe()函数,就能够查看数据基本情况.这里面包括到数据很多属性,比如说能够查看缺失值,最小值,最大值等。
这里我们使用了箱型图分析,异常值检测代码以下:
import pandas as pd
catering_sale='G:/scour.xlsx'
data=pd.read_excel(catering_sale,index_col=u'学生')
import matplotlib.pyplot as plt
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()
for i in range(len(x)):
if i>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.绘制饼状图
饼状图显示一个数据系列(数据系列:在图表中绘制相关数据点,这些数据源自数据表行或列。图表中每个数据系列具备唯一颜色或图案而且在图表图例中表示。能够在图表中绘制一个或多个数据系列。饼状图只有一个数据系列。)中各项大小与各项总和百分比。
饼状图中数据点(数据点:在图表中绘制单个值,这些值由条形、柱形、折线、饼状图或圆环图扇面、圆点和其余被称为数据标识图形表示。相同颜色数据标识组成一个数据系列。)显示为整个饼状图百分比。饼状图是以圆形代表研究对象整体,用以圆心为共同顶点各个不一样扇形显示各组成部分在整体中所占百分比,要注明各扇形所代表项目标名称(可用图例表示)及其所占百分比。
饼状图能够比较清楚地反应出部分与部分、部分与整体之间数量关系.易于显示每组数据相对于总数大小.而且显现方式直观。
为了使图中数据愈加直观,这里使用饼状图,代码以下:
import numpy as up
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
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
import xlrd
def creatData():
file = 'G:\离散化.xlsx'
wb = xlrd.open_workbook(filename=file)
ws = wb.sheet_by_name('离散化')
data = []
for r in range(ws.nrows):
col = []
for c in range(ws.ncols):
col.append(ws.cell(r, c).value)
data.append(col)
labels = ['物理', '计算机组成原理' ]
return data, labels
(2)利用以下代码计算信息熵
from math import log
def shannon_entropy(data):
enteries=len(data)
label_count={}
for v in data:
current_label=v[-3]
if current_label not in label_count.keys():
label_count[current_label]=0
label_count[current_label]+=1
entropy=0.0
for key in label_count:
prob=float(label_count[key])/enteries
entropy-=prob*log(prob,2)
return entropy
if __name__ == '__main__':
data, features = creatData()
print(data)
print(shannon_entropy(data))
及格
不及格
及格
及格
不及格
不及格
二类
一类
二类
一类
二类
一类
组成原理学习情况
组成原理学习情况
组成原理学习情况
大学物理学习情况
不及格
良好
及格
决议树图
七. 数据挖掘过程
大学物理学习情况
良好
不及格
及格
及格
及格
及格
不及格
不及格
不及格
二类
一类
二类
一类
二类
一类
组成原理学习情况
组成原理学习情况
组成原理学习情况
柱状图是一个以长方形长度为变量表示图形统计汇报图,由一系列高度不等纵向条纹表示数据分布情况,用来比较两个或以上价值(不一样时间或者不一样条件),只有一个变量,通常利用于较小数据集分析。柱状图亦可横向排列,或用多维方式表示。
绘制柱状图代码以下所表示 :
import matplotlib.pyplot as plt
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')
for i in range(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
展开阅读全文