《數據挖掘課程設計(共15頁)》由會員分享,可在線閱讀,更多相關《數據挖掘課程設計(共15頁)(16頁珍藏版)》請在裝配圖網上搜索。
1、精選優(yōu)質文檔-----傾情為你奉上
數 據 挖 掘 報 告
目 錄
摘 要
學生成績是反映學校教學水平的第一手資料,這些數據可以為學校改進教育教學提供重要依據。然而,現(xiàn)階段的學生成績分析,多數還停留在較為原始的數據庫管理和查詢階段,沒有對學生的成績進行橫向和縱向的對比研究,也缺乏對各學科成績之間內在聯(lián)系的挖掘。為此,學校將數據挖掘技術與學校學生成績分析管理系統(tǒng)相結合,通過分析和處理系統(tǒng)中大量的學生成績數據,尋
2、找潛在的規(guī)律及模式,促使學校更好地開展教學工作,提高教學質量。
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 studentsperform
3、ance 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 combine
4、s 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
5、 teaching.
專心---專注---專業(yè)
一. 項目名稱
大學物理,模擬電子技術和計算機組成原理成績的關系分析
二. 項目介紹
大學物理,是大學理工科類的一門基礎課程,通過課程的學習,使學生熟悉自然界物質的結構,性質,相互作用及其運動的基本規(guī)律,為后繼專業(yè)基礎與專業(yè)課程的學習及進一步獲取有關知識奠定必要的物理基礎。但工科專業(yè)以力學基礎和電磁學為主要授課。通過課程的學習,使學生逐步掌握物理學研究問題的思路和方法,在獲取知識的同時,使學生擁有的建立物理模型的能力,定性分析、估算與定量計算的能力,獨立獲取知識的能力,理論聯(lián)系實際的能力都獲得同步提高與發(fā)展。開闊思路,激
6、發(fā)探索和創(chuàng)新精神,增強適應能力,提升其科學技術的整體素養(yǎng)。通過課程的學習,使學生掌握科學的學習方法和形成良好的學習習慣,形成辯證唯物主義的世界觀和方法論。
《計算機組成原理》是計算機科學與技術專業(yè)的一門核心專業(yè)基礎課。通過本課程的學習,使學生掌握計算機系統(tǒng)的基本組成、計算機中數據的表示方法、計算機各硬件部件的功能和工作原理等,為學生學習計算機專業(yè)課打下堅實的基礎。
三. 項目工具
系統(tǒng):win10
軟件:office2010,anaconda
1.Microsoft Office Word
Microsoft Office Word是微軟公司的一個文字處理器應用程序。Word給
7、用戶提供了用于創(chuàng)建專業(yè)而優(yōu)雅的文檔工具,幫助用戶節(jié)省時間,并得到優(yōu)雅美觀的結果。一直以來,Microsoft Office Word都是最流行的文字處理程序。作為 Office 套件的核心程序, Word 提供了許多易于使用的文檔創(chuàng)建工具,同時也提供了豐富的功能集供創(chuàng)建復雜的文檔使用。哪怕只使用 Word 應用一點文本格式化操作或圖片處理,也可以使簡單的文檔變得比只使用純文本更具吸引力。
2.Microsoft Office Excel
Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出
8、色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數據處理軟件。在1993年,作為Microsoft Office的組件發(fā)布了5.0版之后,Excel就開始成為所適用操作平臺上的電子制表軟件的霸主。
3.Anaconda:
Anaconda指的是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學包及其依賴項??梢杂糜谠谕粋€機器上安裝不同版本的軟件包及其依賴,并能夠在不同的環(huán)境之間切換。Anaconda包括Conda、Python以及一大堆安裝好的工具包,比如:numpy、pandas等。
四. 數據文件預處理
在數據挖掘中,
9、海量的原始數據中存在著大量不完整、不一致、有異常的數據,嚴重影響到數據挖掘建模的執(zhí)行效率,甚至可能導致挖掘結果的偏差,所以進行數據清洗就顯得尤為重要,數據清洗完成后接著進行或者同時進行數據集成、變換、規(guī)約等一系列的處理,該過程就是數據預處理。數據預處理一方面是要提高數據的質量,另一方面是要讓數據更好地適應特定的挖掘技術或工具。
1.數據預處理方法:
(1)數據清理
數據清理例程通過填寫缺失的值、光滑噪聲數據、識別或刪除離群點并解決不一致性來“清理”數據。主要是達到如下目標:格式標準化,異常數據清除,錯誤糾正,重復數據的清除。
(2)數據集成
數據集成例程將多個數據源中的數據結合起來并
10、統(tǒng)一存儲,建立數據倉庫的過程實際上就是數據集成。
(3)數據變換
通過平滑聚集,數據概化,規(guī)范化等方式將數據轉換成適用于數據挖掘的形式。
(4)數據歸約
數據挖掘時往往數據量非常大,在少量數據上進行挖掘分析需要很長的時間,數據歸約技術可以用來得到數據集的歸約表示,它小得多,但仍然接近于保持原數據的完整性,并結果與歸約前結果相同或幾乎相同。
由于數據文件信息較多且有很多數據和本課題無關,為了減少資源和時間的浪費,所以在進行分析前先將excel表格進行刪減和求和,優(yōu)化數據,使數據更加直觀便于分析。
處理前數據如圖4-1所示. 處理后數據如圖4-2所示。
圖4-1表格數據處理前
11、
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.異常值的分析
異常值是指樣本中的個別值,也稱為離群點,其數值明顯偏離其余的觀測值。異常值分析是檢驗數
12、據是否有錄入錯誤以及含有不合常理的數據。忽視異常值的存在是十分危險的,不加剔除地把異常值包括進數據的計算分析過程中,對結果會產生不良影響;重視異常值的出現(xiàn),分析其產生的原因,常常成為發(fā)現(xiàn)問題進而改進決策的契機。異常值是指樣本中的個別值,其數值明顯偏離其余的觀測值。異常值也稱為離群點,異常值的分析也稱為離群點分析。
(1)簡單的統(tǒng)計量分析:
我們可以先對采集到的數據做一個描述性的估計,最常用的方法就是最大值與最小值.用來判斷這個變量是否超出常規(guī)的人們的理解等。
(2)箱型圖分析
箱型圖是判斷是判斷數據的異常值的最為直觀的一個方法,他的異常值被定義為可能出現(xiàn)在上四分位數以上的部分與下四分
13、位數以下的部分.當然,并不是說在這樣的范圍內的數都是異常值,但是可以肯定的是,異常值是一定在這里產生的。為了首先感知我們數據的基本情況,在Python的Pandas庫中,只需要讀入要處理的數據,然后使用describe()函數,就可以查看數據的基本情況.這里面涉及到數據的很多屬性,比如說可以查看缺失值,最小值,最大值等。
這里我們使用了箱型圖分析,異常值檢測代碼如下:
import pandas as pd
catering_sale=G:/scour.xlsx
data=pd.read_excel(catering_sale,index_col=u學生)
import matp
14、lotlib.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]+
15、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 異常值檢測箱型圖
五. 數據分析
數據分析是指用適當的統(tǒng)計方法對收集來的大量第一手資料和第二手資料進行分析,以求最大化地開發(fā)數據資料的功能,發(fā)揮數據的作用。是為了提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。數據也稱觀測值,是實驗、測量、觀察、調查等的結果,常以數量的形式給出。
數
16、據分析的目的與意義數據分析的目的是把隱沒在一大批看來雜亂無章的數據中的信息集中、萃取和提煉出來,以找出所研究對象的內在規(guī)律。
1.繪制餅狀圖
餅狀圖顯示一個數據系列(數據系列:在圖表中繪制的相關數據點,這些數據源自數據表的行或列。圖表中的每個數據系列具有唯一的顏色或圖案并且在圖表的圖例中表示??梢栽趫D表中繪制一個或多個數據系列。餅狀圖只有一個數據系列。)中各項的大小與各項總和的比例。
餅狀圖中的數據點(數據點:在圖表中繪制的單個值,這些值由條形、柱形、折線、餅狀圖或圓環(huán)圖的扇面、圓點和其他被稱為數據標記的圖形表示。相同顏色的數據標記組成一個數據系列。)顯示為整個餅狀圖的百分比。餅狀圖是以
17、圓形代表研究對象的整體,用以圓心為共同頂點的各個不同扇形顯示各組成部分在整體中所占的比例,要注明各扇形所代表的項目的名稱(可用圖例表示)及其所占百分比。
餅狀圖可以比較清楚地反映出部分與部分、部分與整體之間的數量關系.易于顯示每組數據相對于總數的大小.而且顯現(xiàn)方式直觀。
為了使圖中數據更加直觀,這里使用餅狀圖,代碼如下:
import numpy as up
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
plt.rcParams[font.sans-serif]=[SimHei]
plt.rcPara
18、ms[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組成原理成績分布圖
六. 挖掘建模
本課題研究的是對大學物理各個分數段的人及格幾率的預測
19、,并通過數據檢測,檢測是否在計算機組成原理學習中存在困難,并及時給與提醒,根據數據挖掘分析。
1.算法實現(xiàn)過程:
①用代碼5-1 求總的信息熵。
②手工測算高數1,高數2對于數據結構及格情況的條件熵。
③信息增益=總信息熵-條件熵。
④參考信息增益,用信息增益多的作根節(jié)點,畫出最淺決策樹。
2.具體實現(xiàn)代碼及過程
(1)利用以下代碼將ecxel表格導入list
import xlrd
def creatData():
file = G:\離散化.xlsx
wb = xlrd.open_workbook(filename=f
20、ile)
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
21、
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 labe
22、l_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))
及格
不及格
及格
及格
不及格
不及格
組成原理學習情況
組成原理學習情況
組成原理學習情況
大學物理學習情況
不及格
23、
良好
及格
決策樹圖
七. 數據挖掘過程
大學物理學習情況
良好
不及格
及格
及格
及格
及格
不及格
不及格
不及格
組成原理學習情況
組成原理學習情況
組成原理學習情況
柱狀圖是一種以長方形的長度為變量的表達圖形的統(tǒng)計報告圖,由一系列高度不等的縱向條紋表示數據分布的情況,用來比較兩個或以上的價值(不同時間或者不同條件),只有一個變量,通常利用于較小的數據集分析。柱狀圖亦可橫向排列,或用多維方式表達。
繪制柱狀圖的代碼如下所示
24、:
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