夏汛
摘要:科研水平是衡量高校發(fā)展的一個重要指標(biāo),科研對高校的意義和深遠(yuǎn)價值不言而喻。本文以瀘州職業(yè)技術(shù)學(xué)院為例,通過獲取瀘州職業(yè)技術(shù)學(xué)院的科研論文和科研數(shù)據(jù),經(jīng)過權(quán)重設(shè)置,歸一化處理后,運用k-means聚類算法,分析出整個學(xué)院的科研全貌,從而為領(lǐng)導(dǎo)的各項決策提供數(shù)據(jù)支撐。
關(guān)鍵詞:科研;k-means;聚類算法
中圖分類號:F239.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)12-0098-02
1 K-means算法介紹
K-means算法,也被稱為K-均值或K-平均算法,是一種廣泛使用的聚類算法。K-means算法是基于相似性的無監(jiān)督的算法,通過比較樣本之間的相似性,將較為相似的樣本劃分到同一類別中。由于K-means算法簡單、易于實現(xiàn)的特點, K-means算法得到了廣泛的應(yīng)用。
2 數(shù)據(jù)準(zhǔn)備
通過爬取瀘州職業(yè)技術(shù)學(xué)院科研管理系統(tǒng)和知網(wǎng)的科研數(shù)據(jù),并將相應(yīng)的成果賦予一定的權(quán)重,取得的科研項目和科研成果分析如圖1所示。
3 數(shù)據(jù)預(yù)處理
因為各個指標(biāo)評價分值不通,為統(tǒng)一標(biāo)準(zhǔn),使用z-score對數(shù)據(jù)化做歸一化處理。
z分?jǐn)?shù)公式如公式1所示:
(1)
其中μ為總體平均值,X-μ為離均差,σ表示總體標(biāo)準(zhǔn)偏差。z的絕對值表示在標(biāo)準(zhǔn)差范圍內(nèi)的原始分?jǐn)?shù)與總體均值之間的距離。當(dāng)原始分?jǐn)?shù)低于平均值時,z為負(fù),以上為正。
經(jīng)過歸一化處理后,指標(biāo)分值如圖2所示。
4 確定聚類數(shù)量
因為該分析中不確定聚類的數(shù)量,那么可以通過肘部法則這一技術(shù)來估計聚類數(shù)量。肘部法則會把不同值的成本函數(shù)值畫出來。隨著值的增大,平均畸變程度會減小;每個類包含的樣本數(shù)會減少,于是樣本離其重心會更近。但是,隨著值繼續(xù)增大,平均畸變程度的改善效果會不斷減低。值增大過程中,畸變程度的改善效果下降幅度最大的位置對應(yīng)的值就是肘部。如圖3所示。
可以看出,聚類數(shù)量應(yīng)設(shè)定為3。
繪制該圖的python代碼如下:
df_features = pd.read_csv(r'G:\計算.csv', encoding='utf-8')? # 讀入數(shù)據(jù)
'利用SSE選擇k'
SSE = []? # 存放每次結(jié)果的誤差平方和
for k in range(1, 9):
estimator = KMeans(n_clusters=k)? # 構(gòu)造聚類器
estimator.fit(df_features[['R', 'M']])
SSE.append(estimator.inertia_)
X = range(1, 9)
plt.xlabel('k')
plt.ylabel('SSE')
plt.plot(X, SSE, 'o-')
plt.show()
5 使用K-means算法計算聚類
繼續(xù)使用上述數(shù)據(jù),進(jìn)行聚類的繪制。
python的關(guān)鍵代碼如下:
##計算歐式距離
def distEuclid(x, y):
return np.sqrt(np.sum((x - y) ** 2))
## 初始化簇中心點 一開始隨機(jī)從樣本中選擇k個 當(dāng)做各類簇的中心
def initCentroid(data, k):
num, dim = data.shape
centpoint = np.zeros((k, dim))
l = [x for x in range(num)]
np.random.shuffle(l)
for i in range(k):
index = int(l[i])
centpoint[i] = data[index]
return centpoint
##進(jìn)行KMeans分類
def KMeans(data, k):
##樣本個數(shù)
num = np.shape(data)[0]
##記錄各樣本 簇信息 0:屬于哪個簇 1:距離該簇中心點距離
cluster = np.zeros((num, 2))
cluster[:, 0] = -1
##記錄是否有樣本改變簇分類
change = True
##初始化各簇中心點
cp = initCentroid(data, k)
while change:
change = False
##遍歷每一個樣本
for i in range(num):
minDist = 9999.9
minIndex = -1
##計算該樣本距離每一個簇中心點的距離 找到距離最近的中心點
for j in range(k):
dis = distEuclid(cp[j], data[i])
if dis < minDist:
minDist = dis
minIndex = j
##如果找到的簇中心點非當(dāng)前簇 則改變該樣本的簇分類
if cluster[i, 0] != minIndex:
change = True
cluster[i, :] = minIndex, minDist
## 根據(jù)樣本重新分類? 計算新的簇中心點
for j in range(k):
pointincluster = data[[x for x in range(num)
if cluster[x, 0] == j]]
cp[j] = np.mean(pointincluster, axis=0)
6 數(shù)據(jù)結(jié)論
通過最終得到的聚類圖,結(jié)論如下:
(1)教師可以分為A、B、C三大類;(2)A類教師在科研項目、學(xué)術(shù)論文方面均明顯高于其它教師,學(xué)院的科研項目、核心期刊主要由這部分教師完成,可視為優(yōu)秀科研型教師;(3)B類教師水平較為中庸,在科研項目和學(xué)術(shù)論文方面均有所產(chǎn)出,但在核心期刊方面產(chǎn)出較少,可視為科研項目型教師;(4)C類教師產(chǎn)出較低,在科研項目和學(xué)術(shù)論文方面只有極低產(chǎn)出,或者只有一方面有產(chǎn)出,該部分教師基本未參與科研;(5)注意到聚類圖里的幾個離散點,數(shù)量較少,僅有幾名,可視為科研領(lǐng)軍型人物,在科研項目和學(xué)術(shù)論文方面均遙遙領(lǐng)先。
參考文獻(xiàn)
[1] 張海林,李琳,夏傳良.改進(jìn)K-means算法的饋線線損計算[J].軟件導(dǎo)刊,2019(11):1-5.
[2] 程士卿,郝問裕,李晨,等.低秩張量分解的多視角譜聚類算法[J].西安交通大學(xué)學(xué)報,2019(03):1-7.
The Analysis of? Talent Evaluation in Colleges and Universities Based on K-means Clustering Algorithm
——Taking Luzhou Vocational and Technical College as an Example
XIA Xun
(Luzhou Vocational & Technical College,Luzhou? Sichuan? 646005)
Abstract:the level of scientific research is an important indicator to measure the development of colleges and universities. The significance and far-reaching value of scientific research to colleges and universities are self-evident. This paper takes Luzhou vocational and Technical College as an example, through obtaining the scientific research papers and data of Luzhou vocational and technical college, after weight setting and normalization processing, using k-means clustering algorithm, analyzes the scientific research panorama of the whole college, so as to provide data support for leaders' decisions.
Key words:scientific research;k-means;clustering algorithm