假設妳是壹個班主任,拿到學生的入學成績,剛接觸學生,對學生不是很了解,那麽我們如何對學生有效的分組幫助他們快速的成長,怎麽分組開展個性化教學呢?
傳統簡單的辦法,我們習慣根據考試成績來分組,但是每個學生不同學科的成績差異很大,數學好的英語可能很差,我們常說物以類聚,人以群分,有相同學習目標的人放在壹起容易形成***鳴,學習積極性也會高很多,因此我們希望能夠幫助老師把學生合理的分組,這個問題事先我們並不知道學生屬於哪個組,也不知道具體需要分成幾個組,不大適合使用K均值來實現,我們應用層次聚類幫助老師實施差異化教學分組。
便於說明算法的工作原理,我們采集了12個人兩門課程的入學成績數據。
在工作面板上拖動壹個數據表組件(Data Table)連接文件組件(File)可以查看數據表格。
層次聚類試圖在不同層次對數據集進行劃分,從而形成樹形的聚類結構。數據集劃分可采用"自底向上"的聚合策略,也可采用"自頂向下"的分拆策略。
計算兩個組合數據點間距離的方法有三種,分別為Single Linkage,Complete Linkage和Average Linkage。在開始計算之前,我們先來介紹下這三種計算方法以及各自的優缺點。
Single Linkage
Single Linkage的計算方法是將兩個組合數據點中距離最近的兩個數據點間的距離作為這兩個組合數據點的距離。這種方法容易受到極端值的影響。兩個很相似的組合數據點可能由於其中的某個極端的數據點距離較近而組合在壹起。
Complete Linkage
Complete Linkage的計算方法與Single Linkage相反,將兩個組合數據點中距離最遠的兩個數據點間的距離作為這兩個組合數據點的距離。Complete Linkage的問題也與Single Linkage相反,兩個不相似的組合數據點可能由於其中的極端值距離較遠而無法組合在壹起。
Average Linkage
Average Linkage的計算方法是計算兩個組合數據點中的每個數據點與其他所有數據點的距離。將所有距離的均值作為兩個組合數據點間的距離。這種方法計算量比較大,但結果比前兩種方法更合理。
如圖所示,我們將全部12個同學的成績用散點圖繪制,根據常識,我們將樣本距離近的歸為壹類,直觀的,我們將這12個樣本分為4類比較合理,分別表示英語和數學成績都正常發展的,英語偏科的,數學偏科的以及英語和數學發展都相對落後的。圖中用四個不同顏色的區域表示這個類同學。
為達到分類的目的,首先應用距離組件(Distances)計算樣本對之間的距離,簡單地,我們選擇歐式距離,也就是平時我們說的平面上兩個點之間的直線距離。
那麽層次 聚類怎麽工作的呢?首先我們把每壹個點看成是壹個類,從散點圖上我們可以看出李瑞和洪海之間的距離最近,因此我們首先把這兩個點(類)歸為壹類,重復這個過程,每次合並兩個類,直到整個集合都被歸為壹個類,層次聚類的過程如圖所示,最後我們選擇壹個合適的層數來決定具體我們要劃分為多少個類。
最後我們借助箱線圖來分析分類的結果。
不同於分類問題,聚類樣本沒有已知的標簽。類似於學生的分組,沒有壹個具體的標準去評判分組的好壞,要根據具體應用去判斷最終的聚類結果的價值。