1. 项目概述从一道赛题到一次完整的建模实战去年电工杯数学建模竞赛的B题把“人工智能对大学生学习影响的评价”这个看似宏大的社会议题抛给了我们这些参赛者。题目一出来很多队伍的第一反应可能是懵的这该怎么量化数据从哪来模型怎么建我当时带着团队也是从这种困惑开始的但一步步拆解下来发现这不仅是一道赛题更是一次绝佳的、贯穿数据处理、模型构建到综合评价的完整实战演练。它要求你不仅仅会调用几个算法更要理解如何将一个模糊的“影响”概念转化为可测量、可分析、可评价的指标体系并用数学的语言给出有说服力的结论。这个过程对于任何想深入数据科学、教育技术或者政策研究领域的朋友来说价值远超比赛本身。今天我就把当时我们的完整解题思路、核心代码实现以及踩过的那些坑毫无保留地分享出来。无论你是正在备战类似竞赛的学生还是对“AI教育”影响评估感兴趣的研究者这篇文章都能给你提供一个从零到一的可复现框架。2. 解题核心思路拆解如何定义“影响”并构建评价桥梁面对“评价影响”这类问题最忌讳的就是直接扎进数据里漫无目的地找算法。我们的首要任务是建立一个清晰的分析逻辑框架把抽象的“影响”具体化、操作化。2.1 问题界定与评价维度确立题目中的“影响”是双向的既包括积极促进也可能存在消极干扰。我们不能笼统地说“好”或“坏”必须将其分解为多个可观测的维度。我们团队经过讨论和文献调研最终确立了四个核心评价维度学习效率与效果维度这是最直接的层面。AI工具能否帮助学生更快地掌握知识如智能答疑、知识点推荐能否提升其作业、考试的表现如基于AI的写作辅助、解题思路提示我们计划用“任务完成时间”、“测验成绩提升率”、“知识掌握牢固度通过重复测试衡量”等指标来刻画。学习行为与习惯维度AI是否改变了学生的学习方式例如使用AI搜索和整理资料是否减少了其深入阅读原始文献的时间对智能解题工具的依赖是否影响了其独立思考能力这里我们关注“自主学习时间占比”、“信息溯源深度”、“解题尝试次数”等行为数据。学习体验与心理维度学生对使用AI学习的主观感受如何是感到更轻松、更有趣、更有信心还是产生了焦虑害怕被AI取代、挫败感觉得AI能力太强或技术压力这需要通过问卷量表来获取数据如“学习焦虑指数”、“自我效能感”、“技术接受度”等。技能发展与适应性维度在AI时代大学生是否培养了与之协作的新技能例如能否有效地向AI提问提示工程、批判性地评估AI生成内容的可靠性、将AI作为思维拓展的工具而非答案生成器这涉及“人机协作能力”、“信息批判性思维”等较难量化但至关重要的方面。注意维度的选择不是一成不变的它取决于你能获取到的数据类型。如果只有成绩数据那就重点聚焦维度一如果能发放问卷就可以加入维度三和四。我们的方案是假设能获取到多源数据包括客观行为日志和主观问卷构建一个相对全面的评价体系。2.2 技术路线图设计确立了“评价什么”接下来就是“如何评价”。我们设计的技术路线分为五个阶段数据准备与预处理阶段收集多源数据成绩单、学习平台日志、问卷星调查结果进行清洗、集成和标准化。关键步骤包括处理缺失值、统一数据尺度、将文本评论进行情感分析转化为数值。指标量化与特征工程阶段将上一步确立的各个维度转化为具体的、可计算的数学指标。例如“学习效率”可以用“单位时间知识点掌握数量”来量化“AI依赖度”可以用“提交作业中直接引用AI生成内容的比例”来近似。这个阶段是连接抽象概念和具体模型的桥梁。综合评价模型构建阶段这是核心。单一指标无法给出整体评价我们需要一个模型来综合多个指标。我们放弃了简单加权平均因为各指标间可能存在相关性且权重难以客观确定。最终选用了熵权TOPSIS法。理由如下熵权法可以根据数据本身的离散程度客观赋权避免主观偏见TOPSIS法逼近理想解排序法能很好地处理多指标决策通过计算每个学生与“正理想解”各项指标最优和“负理想解”各项指标最差的距离来得到一个相对优劣的综合评分。影响模式挖掘与分组分析阶段得到综合评分后我们还需要深入分析哪些学生从AI中受益最大哪些受到了负面影响他们的特征是什么我们采用聚类分析如K-Means对学生进行分群识别出“高效协作者”、“依赖风险者”、“抵触不适者”等典型群体并刻画其画像。归因分析与建议提出阶段基于聚类结果进一步使用相关性分析、决策树或逻辑回归等模型探索影响评价结果的关键因素如专业背景、初始学习水平、使用AI的方式等从而提出具有针对性的建议。这个路线图确保了从数据到结论的每一步都有方法支撑逻辑闭环。3. 核心模型与算法实现细节这里重点解析第3、4阶段的核心模型熵权TOPSIS和K-Means聚类。我会给出清晰的数学步骤和关键的Python代码片段。3.1 熵权TOPSIS模型详解与实现第一步构建原始评价矩阵假设我们有m个学生评价对象n个评价指标。构成矩阵 ( X (x_{ij}){m \times n} )。其中( x{ij} ) 表示第i个学生在第j个指标上的值。第二步数据标准化指标通常有正向越大越好和负向越小越好之分需要统一量纲和方向。我们采用极差标准化法。 对于正向指标 [ z_{ij} \frac{x_{ij} - \min(x_j)}{\max(x_j) - \min(x_j)} ] 对于负向指标 [ z_{ij} \frac{\max(x_j) - x_{ij}}{\max(x_j) - \min(x_j)} ] 得到标准化矩阵 ( Z (z_{ij})_{m \times n} )。第三步计算熵权计算第j项指标下第i个学生的比重( p_{ij} z_{ij} / \sum_{i1}^{m} z_{ij} )。计算第j项指标的熵值( e_j -k \sum_{i1}^{m} p_{ij} \ln(p_{ij}) )其中 ( k 1/\ln(m) 0 )确保 ( 0 \le e_j \le 1 )。计算差异系数( g_j 1 - e_j )。熵值越小差异系数越大指标越重要。计算权重( w_j g_j / \sum_{j1}^{n} g_j )。第四步计算加权标准化矩阵( V (v_{ij}){m \times n} )其中 ( v{ij} w_j \times z_{ij} )。第五步确定正负理想解正理想解 ( V^ (v_1^, v_2^, ..., v_n^) )其中 ( v_j^ \max(v_{ij}) )。 负理想解 ( V^- (v_1^-, v_2^-, ..., v_n^-) )其中 ( v_j^- \min(v_{ij}) )。第六步计算距离与相对贴近度每个学生到正理想解的距离( S_i^ \sqrt{\sum_{j1}^{n} (v_{ij} - v_j^)^2} )。 到负理想解的距离( S_i^- \sqrt{\sum_{j1}^{n} (v_{ij} - v_j^-)^2} )。 相对贴近度即综合评价值( C_i S_i^- / (S_i^ S_i^-) )。 ( C_i ) 越接近1说明该学生越接近最优水平即AI对其学习的综合正面影响越大。import numpy as np import pandas as pd def entropy_weight_topsis(data, positive_indicesNone, negative_indicesNone): 熵权TOPSIS综合评价 :param data: DataFrame, 行为样本学生列为指标 :param positive_indices: list, 正向指标列索引或列名 :param negative_indices: list, 负向指标列索引或列名 :return: 包含权重、贴近度C_i的结果DataFrame X data.values m, n X.shape # 1. 标准化 Z np.zeros_like(X, dtypefloat) for j in range(n): col X[:, j] min_val, max_val col.min(), col.max() if positive_indices and (j in positive_indices or data.columns[j] in positive_indices): Z[:, j] (col - min_val) / (max_val - min_val 1e-10) # 防止除零 elif negative_indices and (j in negative_indices or data.columns[j] in negative_indices): Z[:, j] (max_val - col) / (max_val - min_val 1e-10) else: # 默认视为正向指标 Z[:, j] (col - min_val) / (max_val - min_val 1e-10) # 2. 计算熵权 # 计算比重 P Z / Z.sum(axis0, keepdimsTrue) # 计算熵值避免ln(0) P_safe np.where(P 0, 1e-10, P) e - (1 / np.log(m)) * np.sum(P_safe * np.log(P_safe), axis0) # 差异系数与权重 g 1 - e w g / g.sum() # 3. 加权标准化矩阵 V Z * w # 4. 理想解 V_positive V.max(axis0) V_negative V.min(axis0) # 5. 距离计算 # 使用欧氏距离 S_positive np.sqrt(((V - V_positive) ** 2).sum(axis1)) S_negative np.sqrt(((V - V_negative) ** 2).sum(axis1)) # 6. 贴近度 C S_negative / (S_positive S_negative 1e-10) result_df data.copy() result_df[权重_向量] [w] * m # 存储权重向量每行相同仅为展示 result_df[距正理想解距离_S] S_positive result_df[距负理想解距离_S-] S_negative result_df[综合贴近度_C] C result_df[综合排名] (-C).argsort().argsort() 1 # 排名C越大排名越前 print(各指标权重:, dict(zip(data.columns, w))) return result_df, w # 假设df是包含多个指标的学生数据 # df pd.read_csv(student_data.csv) # positive_cols [成绩提升率, 学习满意度] # 正向指标列名 # negative_cols [作业抄袭指数, 学习焦虑度] # 负向指标列名 # result_df, weights entropy_weight_topsis(df, positive_cols, negative_cols)3.2 K-Means聚类分析学生群体得到综合评分C后我们结合原始的几个关键特征如C值、AI使用频率、初始成绩等对学生进行聚类以发现不同影响模式的人群。from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt def student_clustering_analysis(feature_df, n_clusters3, random_state42): 对学生特征进行聚类分析 :param feature_df: DataFrame包含用于聚类的特征列例如[综合贴近度_C, AI使用频率, 初始GPA] :param n_clusters: 预设聚类数量 :return: 添加了聚类标签的DataFrame聚类中心以及可能的可视化结果 # 特征标准化 scaler StandardScaler() features_scaled scaler.fit_transform(feature_df) # 使用K-Means聚类 kmeans KMeans(n_clustersn_clusters, random_staterandom_state, n_init10) cluster_labels kmeans.fit_predict(features_scaled) # 将标签添加回原数据框 result_df feature_df.copy() result_df[Cluster_Label] cluster_labels # 分析聚类中心反标准化回原始尺度以便解释 cluster_centers_original scaler.inverse_transform(kmeans.cluster_centers_) centers_df pd.DataFrame(cluster_centers_original, columnsfeature_df.columns) centers_df[Cluster] range(n_clusters) print(聚类中心特征原始尺度:) print(centers_df) # 简单可视化以两个主要特征为例 if feature_df.shape[1] 2: plt.figure(figsize(10, 6)) scatter plt.scatter(feature_df.iloc[:, 0], feature_df.iloc[:, 1], ccluster_labels, cmapviridis, alpha0.7) # 绘制聚类中心 plt.scatter(centers_df.iloc[:, 0], centers_df.iloc[:, 1], cred, markerX, s200, labelCluster Centers) plt.xlabel(feature_df.columns[0]) plt.ylabel(feature_df.columns[1]) plt.title(fStudent Clustering (K{n_clusters})) plt.legend() plt.colorbar(scatter, labelCluster Label) plt.tight_layout() plt.show() return result_df, centers_df # 使用示例 # 假设我们已经有了result_df其中包含综合贴近度_C并且有其他特征列 # clustering_features result_df[[综合贴近度_C, AI_Weekly_Usage_Hours, Baseline_Score]] # clustered_df, centers student_clustering_analysis(clustering_features, n_clusters4)通过聚类我们可能得到集群0高效协作者高C值中等或高AI使用频率高初始成绩。他们能有效利用AI提升自己。集群1依赖风险者中等C值极高的AI使用频率中等或偏低初始成绩。他们可能过度依赖AI独立思考能力发展受阻。集群2抵触不适者低C值低AI使用频率成绩各异。他们对AI持怀疑或抵触态度未能从中获益。集群3潜力未开发者低C值中等AI使用频率低初始成绩。他们使用了AI但方法不当效果不佳。4. 数据准备、特征工程与全流程整合模型再漂亮没有好的数据也是空中楼阁。这部分是实战中耗时最长、也最容易出错的环节。4.1 多源数据模拟与预处理竞赛中数据往往需要自己构造或从公开数据集整合。我们模拟了一个包含300名虚拟学生的数据集数据来源包括学术记录从学校教务系统导出的过去两个学期的成绩GPA_S1,GPA_S2计算得到成绩提升率 (GPA_S2 - GPA_S1) / GPA_S1。学习平台日志假设有一个学习平台记录了学生使用内置AI助手如智能答疑、推荐习题的行为。从中提取AI使用频率次/周、单次使用平均时长分钟、使用AI后习题正确率变化。问卷调查通过问卷星发放李克特5分量表问卷回收后计算各维度得分。例如学习焦虑度由“担心AI使我学习能力下降”等问题得分平均。人机协作效能感由“我能很好地利用AI帮助我拓展思路”等问题得分平均。技术接受度基于TAM模型简化的问题得分。import numpy as np import pandas as pd # 模拟生成300名学生的数据 np.random.seed(2023) # 确保可复现 n_students 300 # 1. 基础学术数据 base_gpa np.random.normal(3.0, 0.5, n_students) # 第一学期GPA均值为3.0 base_gpa np.clip(base_gpa, 1.0, 4.0) # 限制在1.0-4.0之间 # 假设AI的影响是随机的但整体趋势是正面的并加入一些噪声和负向案例 ai_effect np.random.normal(0.15, 0.2, n_students) # 平均提升15%标准差20% # 让其中一部分学生产生负面影响例如过度依赖 negative_effect_mask np.random.choice([0, 1], sizen_students, p[0.85, 0.15]) ai_effect[negative_effect_mask.astype(bool)] * -0.5 # 这部分人效果为负 gpa_s2 base_gpa * (1 ai_effect) gpa_s2 np.clip(gpa_s2, 1.0, 4.0) gpa_improvement (gpa_s2 - base_gpa) / base_gpa # 2. AI使用行为数据与效果有一定相关性但非绝对 ai_freq np.random.poisson(5, n_students) np.abs(np.random.normal(0, 2, n_students)) # 每周使用次数泊松分布加噪声 ai_freq ai_freq.astype(int) # 使用时长与频率正相关但存在个体差异 ai_duration ai_freq * np.random.uniform(2, 10, n_students) # 平均每次2-10分钟 # 3. 问卷数据模拟5点量表1-5分 # 学习焦虑AI使用越多初始成绩越差的学生可能更焦虑 learning_anxiety 3 0.1 * ai_freq - 0.3 * base_gpa np.random.normal(0, 0.5, n_students) learning_anxiety np.clip(learning_anxiety, 1, 5) # 人机协作效能感与成绩提升正相关 collab_efficacy 3 0.4 * gpa_improvement np.random.normal(0, 0.4, n_students) collab_efficacy np.clip(collab_efficacy, 1, 5) # 技术接受度年轻人普遍较高但与焦虑负相关 tech_acceptance 4 - 0.2 * learning_anxiety np.random.normal(0, 0.3, n_students) tech_acceptance np.clip(tech_acceptance, 1, 5) # 4. 构建DataFrame df pd.DataFrame({ Student_ID: range(1, n_students 1), Base_GPA: np.round(base_gpa, 2), Current_GPA: np.round(gpa_s2, 2), GPA_Improvement_Rate: np.round(gpa_improvement, 3), AI_Usage_Freq_Weekly: ai_freq, AI_Avg_Duration_Min: np.round(ai_duration, 1), Learning_Anxiety: np.round(learning_anxiety, 2), Collaboration_Efficacy: np.round(collab_efficacy, 2), Tech_Acceptance: np.round(tech_acceptance, 2), }) # 衍生特征创建一个综合的“AI辅助深度”指标结合频率和时长 df[AI_Assist_Depth] np.round(np.log1p(df[AI_Usage_Freq_Weekly]) * df[AI_Avg_Duration_Min] / 10, 2) print(df.head()) print(f\n数据形状: {df.shape})4.2 特征工程从原始数据到评价指标我们需要将上一步的原始数据映射到2.1节定义的四个维度并构造出最终输入熵权TOPSIS模型的指标。这是一个需要反复斟酌的过程。维度原始数据字段构造的评价指标X指标性质构造逻辑说明学习效率与效果GPA_Improvement_RateX1: 学业进步率正向直接采用反映最终产出效果。Base_GPA,Current_GPAX2: 成绩绝对水平正向取Current_GPA反映当前学术状态。学习行为与习惯AI_Usage_Freq_Weekly,AI_Avg_Duration_MinX3: AI辅助深度适度区间已构造。过高可能意味着依赖过低可能未充分利用。此处我们暂视为正向但需在结果分析中警惕过高值。更佳做法是将其与成绩进步率结合看相关性。学习体验与心理Learning_AnxietyX4: 学习焦虑度负向直接采用分数越高焦虑越强负面影响越大。Collaboration_EfficacyX5: 协作效能感正向直接采用反映积极心理体验。Tech_AcceptanceX6: 技术接受度正向直接采用是持续使用的基础。技能与适应性Collaboration_Efficacy,Tech_Acceptance,AI_Assist_DepthX7: 人机协同指数正向综合心理和行为Collaboration_Efficacy * 0.4 Tech_Acceptance * 0.3 np.log1p(AI_Assist_Depth)*0.3权重可调反映将AI转化为生产力的综合能力。# 特征工程构建最终的评价指标集 df_model pd.DataFrame() df_model[X1_学业进步率] df[GPA_Improvement_Rate] df_model[X2_成绩绝对水平] df[Current_GPA] df_model[X3_AI辅助深度] df[AI_Assist_Depth] df_model[X4_学习焦虑度] df[Learning_Anxiety] # 负向指标 df_model[X5_协作效能感] df[Collaboration_Efficacy] df_model[X6_技术接受度] df[Tech_Acceptance] # 构建综合的人机协同指数 df_model[X7_人机协同指数] ( df[Collaboration_Efficacy] * 0.4 df[Tech_Acceptance] * 0.3 np.log1p(df[AI_Assist_Depth]) * 0.3 # 使用log1p平滑深度指标 ) # 对综合指数进行归一化到1-5范围与其他问卷指标尺度接近 from sklearn.preprocessing import MinMaxScaler scaler MinMaxScaler(feature_range(1, 5)) df_model[X7_人机协同指数] scaler.fit_transform(df_model[[X7_人机协同指数]]).flatten() df_model[X7_人机协同指数] np.round(df_model[X7_人机协同指数], 2) print(用于TOPSIS模型的指标数据前5行:) print(df_model.head())4.3 全流程整合与结果分析现在我们将所有环节串联起来从原始数据得到最终的学生分组和洞见。# 步骤1: 使用熵权TOPSIS进行综合评价 positive_indices [X1_学业进步率, X2_成绩绝对水平, X3_AI辅助深度, X5_协作效能感, X6_技术接受度, X7_人机协同指数] negative_indices [X4_学习焦虑度] result_df, weights entropy_weight_topsis(df_model, positive_indices, negative_indices) # 步骤2: 将综合评分和关键特征合并用于聚类 # 选择关键特征综合评分、AI使用行为、初始能力 clustering_input pd.DataFrame({ 综合贴近度_C: result_df[综合贴近度_C], AI使用频率: df[AI_Usage_Freq_Weekly], 初始学业水平: df[Base_GPA], # 加入初始水平看起点不同的学生受影响模式 AI辅助深度: df[AI_Assist_Depth] }) clustered_df, cluster_centers student_clustering_analysis(clustering_input, n_clusters4) # 步骤3: 将聚类标签与原始数据、TOPSIS结果合并进行深入分析 final_result_df pd.concat([df, result_df[[综合贴近度_C, 综合排名]], clustered_df[[Cluster_Label]]], axis1) # 分析各集群特征 cluster_summary final_result_df.groupby(Cluster_Label).agg({ 综合贴近度_C: mean, AI_Usage_Freq_Weekly: mean, Base_GPA: mean, GPA_Improvement_Rate: mean, Learning_Anxiety: mean, Student_ID: count }).round(3) cluster_summary cluster_summary.rename(columns{Student_ID: 学生数量}) print(\n各学生集群特征摘要:) print(cluster_summary) # 步骤4: 可视化综合评分分布 plt.figure(figsize(12, 5)) plt.subplot(1, 2, 1) plt.hist(final_result_df[综合贴近度_C], bins30, edgecolorblack, alpha0.7) plt.xlabel(综合贴近度 C (值越大AI影响越积极)) plt.ylabel(学生数量) plt.title(AI对学习影响的综合评分分布) plt.subplot(1, 2, 2) for cluster_id in sorted(final_result_df[Cluster_Label].unique()): cluster_data final_result_df[final_result_df[Cluster_Label] cluster_id][综合贴近度_C] plt.hist(cluster_data, bins20, alpha0.6, labelfCluster {cluster_id}, densityTrue) plt.xlabel(综合贴近度 C) plt.ylabel(密度) plt.title(各集群综合评分分布对比) plt.legend() plt.tight_layout() plt.show()运行以上代码我们就能得到每个学生的综合影响评分C、排名以及所属的群体类别。根据cluster_summary的输出我们可以对四个群体进行解读集群0均衡受益者C值最高AI使用频率适中初始成绩较好进步率最高焦虑感较低。他们代表了最理想的AI协作者。集群1高风险依赖者C值中等偏低但AI使用频率最高初始成绩中等进步率却不显著焦虑感偏高。这表明他们可能陷入了“无效努力”或“依赖陷阱”需要干预。集群2低参与观望者C值低AI使用频率最低初始成绩尚可但进步不大。他们可能对AI持保守态度未能利用其优势。集群3基础薄弱挣扎者C值最低初始成绩最低虽然使用AI频率不低但进步率仍是负值焦虑感最高。他们可能面临基础知识和数字技能的双重挑战AI工具未能有效弥补其短板。5. 模型检验、敏感性分析与报告撰写要点一个完整的数模论文不仅要呈现结果还要证明结果的稳健性。5.1 模型检验与敏感性分析权重敏感性分析熵权法给出的权重是否稳定我们可以尝试微调权重观察排名是否发生剧烈变化。例如手动赋予“学业进步率”更高的权重重新计算C值计算斯皮尔曼等级相关系数。如果相关系数很高0.9说明模型对权重不敏感结果稳健。# 敏感性分析示例手动调整权重 original_weights weights # 熵权法得到的权重 # 方案1更看重学业结果 manual_weights_1 np.array([0.3, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1]) # 加大X1权重 manual_weights_1 manual_weights_1 / manual_weights_1.sum() # 归一化 # 重新计算贴近度简化版仅用加权和替代TOPSIS距离计算进行快速比较 weighted_score_original (df_model * original_weights).sum(axis1) weighted_score_manual1 (df_model * manual_weights_1).sum(axis1) # 计算排名相关性 from scipy.stats import spearmanr corr, _ spearmanr(weighted_score_original.rank(), weighted_score_manual1.rank()) print(f调整权重后排名斯皮尔曼相关系数: {corr:.4f})聚类结果稳定性检验使用不同的聚类算法如DBSCAN、层次聚类或不同的距离度量看生成的群体结构是否相似。也可以用轮廓系数Silhouette Score评估当前K值的合理性。from sklearn.metrics import silhouette_score scaler StandardScaler() features_scaled scaler.fit_transform(clustering_input) score silhouette_score(features_scaled, clustered_df[Cluster_Label]) print(f当前聚类K4的轮廓系数为: {score:.4f}) # 轮廓系数介于-1到1越接近1表示聚类效果越好通常0.5认为结构合理。结果合理性分析将综合评分C与一些未参与建模的、常识上应相关的变量如学生对“AI总体影响”的主观打分做相关性分析。如果显著正相关则从侧面验证了模型的有效性。5.2 论文撰写与可视化呈现心得在电工杯这类竞赛中清晰、专业的论文呈现和可视化与模型本身同等重要。技术路线图在论文开头用一张清晰的流程图可以使用PPT或Visio绘制后导出为图片展示从问题分析、数据预处理、模型构建到结论建议的完整逻辑让评委一眼看懂你的工作全貌。多维度结果可视化雷达图用于展示四个集群在7个评价指标上的平均表现直观对比群体差异。散点图矩阵选择“综合贴近度C”、“AI使用频率”、“初始GPA”等关键变量做两两散点图并用聚类标签着色可以观察变量间关系和集群分布。箱线图展示各集群在“学业进步率”、“学习焦虑度”等关键指标上的分布显示中位数、离散程度和异常值。故事线叙述论文不要写成流水账。建议按照“发现问题维度分解- 解决问题模型构建与求解- 分析问题结果解读与聚类- 总结问题归因与建议”的逻辑来组织。在“分析问题”部分紧扣聚类结果讲述四个学生群体的故事让冷冰冰的数据产生温度。模型优缺点与推广务必客观讨论模型的局限性。例如我们的指标依赖于模拟数据实际数据获取更难熵权TOPSIS无法处理指标间的非线性关系聚类数目K需要主观确定等。同时可以说明该框架稍作调整修改评价指标即可用于评价AI对职场培训、中小学教育的影响体现模型的延展性。实操心得在时间紧张的竞赛中代码的模块化至关重要。将数据预处理、熵权TOPSIS、聚类分析分别写成函数就像上面展示的那样不仅调试方便最后整合进论文附录也清晰整洁。另外务必边做边记录把每一步的关键结果如权重、聚类中心和图表及时保存避免最后手忙脚乱地回头找。最后摘要和关键词是评委最先看的部分一定要精炼、准确涵盖问题、方法、模型、结论和特色把最亮的点放在最前面。