聚类分析不同学生对于不同考试的成绩表现

您所在的位置:网站首页 数学建模聚类算法实验报告 聚类分析不同学生对于不同考试的成绩表现

聚类分析不同学生对于不同考试的成绩表现

2024-07-09 20:10| 来源: 网络整理| 查看: 265

实验目的与要求

目的: 使用学习成绩、课外实践活动等数据对学生群体进行聚类分析。我们建立了学生与必修考试成绩一一对应的二维矩阵,聚类分析不同学生对于不同考试的成绩表现。

流程: 首先,应对原有数据进行标准化。

其次,建立相应的模糊相似矩阵,并由此得到模糊等价矩阵。

最终,对其进行聚类。

uploading.4e448015.gif正在上传…重新上传取消

图1 流程图

实验软件环境 MatlabvR2016b 用于聚类分析 Visual Studio 2019 企业版 v16.0.3 用于数据预处理 MySQL 5.7.22,用于数据抽取与存储 数据整理

我们建立了以学号为列,各科目为行的矩阵。

考虑到同学选课情况不尽相同,对于同样一节课,有的同学选了,有的却没选。这导致矩阵数据很难对齐,于是我们将同学没选科目的成绩设置为0。

矩阵如下:行选择某学生,列选择某科目

uploading.4e448015.gif正在上传…重新上传取消

图2  实验矩阵

标准化数据

为建立模糊相似矩阵,我们首先应对原始数据进行标准化。

设论域uploading.4e448015.gif正在上传…重新上传取消为待聚类对象,且每个对象由m个指标表示其性状,如下所示,uploading.4e448015.gif正在上传…重新上传取消。则我们应将原始数据矩阵中的元素通过适当的变换进行压缩。在变换时,我们采用平移-标准差变换方法。

平移-标准差变换的公式如下所示,

uploading.4e448015.gif正在上传…重新上传取消

其中,

uploading.4e448015.gif正在上传…重新上传取消

uploading.4e448015.gif正在上传…重新上传取消

图3  平移-标准差变换结果图

MATLAB代码实现

本文使用MATLAB R2019a(9.6.0.1072779) 64-bit(win64)完成所有实验。所使用的操作系统为,Windows 10 Pro for Workstations。在本文中,如未明确指明,则使用的环境皆为上述所示。

本文主要使用如下代码完成原始数据的标准化。

function[X]=F_Normalize(cs,X)

if(cs==0)return;end

[n,m]=size(X);

if(cs==1)

    for(k=1:m)xk=0;

        for(i=1:n)xk=xk+X(i,k);end

        xk=xk/n;sk=0;

        for(i=1:n)sk=sk+(X(i,k)-xk)^2;end

        sk=sqrt(sk/n);

        for(i=1:n)X(i,k)=(X(i,k)-xk)/sk;end

    end

elseif(cs==2)

    for(k=1:m)xmin=X(1,k);xmax=X(1,k);

        for(i=1:n)

            if(xmin>X(i,k))xmin=X(i,k);end

            if(xmax



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3