K-means聚类学生技能分层:Section1与Section2特征维度选择咨询
问题:K-means聚类特征维度的选择决策
现有参加两项数字技能测试的学生数据:Section1考查Level2数字技能,Section2考查Level3数字技能。需基于学生分数构建3个聚类,对应技能等级1、2、3,相关Pandas代码如下:
import pandas as pd data = [12,24,14,20,8,10,5,23] # initialize data of lists. data = {'Name': ['Marc','Fay', 'Emile','bastian', 'Karine','kathia', 'John','moni'], 'Scores_section1': [12,24,14,20,8,10,5,23], 'Scores_section2' : [20,4,1,0,18,9,12,10], 'Sum_all_scores': [32,28,15,20,26,19,17,33]} # Create DataFrame df = pd.DataFrame(data) # print dataframe. df
拟采用K-means聚类算法,但需确定特征维度:应将Scores_section1作为x、Scores_section2作为y,还是反之?请说明原因。
回答
其实把Scores_section1作为x、Scores_section2作为y,或者反过来,对K-means聚类的最终分组结果本质没有影响——因为K-means是基于特征间的距离计算的,x和y只是坐标系的两个轴,交换后距离计算逻辑完全一致,聚类出来的分组不会变,只是后续可视化时坐标轴方向调换而已。
但如果要贴合业务逻辑和后续分析的便利性,更建议把Scores_section1(Level2基础技能)设为x轴,Scores_section2(Level3高阶技能)设为y轴,原因有两点:
- 符合技能进阶的认知逻辑:Level2是Level3的前置基础,把基础技能放在横轴、高阶技能放在纵轴,后续看聚类结果时,能更直观区分出「基础扎实但高阶薄弱」「基础薄弱但高阶有潜力」「基础高阶都优秀」这类群体,和日常对技能水平的认知匹配度更高。
- 方便对应预设的技能等级:我们要构建的3个聚类对应技能等级1、2、3,用上述轴的对应关系,能更快把聚类结果和「低阶技能差/整体水平低」「基础扎实/中等水平」「基础高阶都优秀/高水平」的等级标签对应起来,减少后续分析的混淆。
内容的提问来源于stack exchange,提问作者Kathia
相关产品推荐
相关产品推荐

