尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

灰色关联分析:小样本多指标评价的数学建模利器

灰色关联分析:小样本多指标评价的数学建模利器 1. 项目概述为什么是灰色关联如果你刚开始接触数学建模尤其是评价决策类问题看到“灰色关联”这个词可能会有点懵。它听起来不像层次分析法AHP那么直观也不像TOPSIS那样有明确的“逼近理想解”的概念。我第一次在国赛题目里遇到需要评价多个因素对某个结果的影响程度时也是一头雾水试了相关系数发现数据量少、样本点有缺失时根本没法用。后来导师扔给我一篇关于“灰色系统理论”的论文我才算入了门。简单来说灰色关联分析就是用来处理“小样本、贫信息”不确定性问题的利器。什么叫“小样本、贫信息”比如你就只有过去5年的经济数据样本少里面还缺了某一年的某项指标信息不全、不确定但你还是想分析投资、消费、出口这几个因素对GDP增长的影响哪个更大。这时候传统的统计方法要求大样本和典型分布可能就“哑火”了。灰色关联不追求数据量多大、分布多漂亮它核心是看数据序列之间几何形状的相似程度。形状越接近就认为关联度越大。这个思路非常巧妙它把重心从数据的“精确数值”转移到了数据变化的“趋势”上。所以在数学建模竞赛中尤其是数据不那么完美、但又需要做出定性或半定量评价的赛题里灰色关联是一个出场率很高的“救场队员”。它主要能干两件事一是进行因素分析找出影响系统主行为的关键因素二是进行方案排序或综合评价在多套方案中选出最优。无论是分析影响空气质量的主要污染源还是评价不同城市的发展水平亦或是选择最优的供应商只要你有几组随时间或对象变化的数据序列灰色关联都能给你一个量化的关联度排序。接下来我就结合自己从零自学和实战踩坑的经验把这套方法的里里外外、从原理到代码实现再到怎么避开那些论文里不会写的坑给你彻底讲明白。2. 核心思想与数学模型拆解灰色关联分析的核心在于“关联度”的计算。这个度量的不是我们通常理解的相关系数而是一种基于序列几何形状相似性的贴近度。整个建模过程可以清晰地分为几个步骤每一步都有其明确的目的和数学操作。2.1 第一步确定分析序列这是所有分析的起点必须非常清楚。你需要明确两类序列母序列参考序列这是你关心的核心结果通常记为 ( X_0 )。比如在分析影响经济增长的因素时GDP增长率就是母序列在评价不同方案时你心中“理想的最优方案”的各项指标值就构成了母序列。子序列比较序列这些是可能影响母序列的因素或者待评价的各个具体方案通常记为 ( X_1, X_2, ..., X_m )。接上例投资增长率、消费增长率、出口增长率就是子序列各个待选方案的具体指标值就是子序列。假设我们有 ( m ) 个子序列每个序列有 ( n ) 个时刻或指标的数据。那么原始数据矩阵看起来是这样的 [ \begin{aligned} X_0 (x_0(1), x_0(2), ..., x_0(n)) \ X_1 (x_1(1), x_1(2), ..., x_1(n)) \ ... \ X_m (x_m(1), x_m(2), ..., x_m(n)) \end{aligned} ] 这里 ( x_i(k) ) 就表示第 ( i ) 个序列在第 ( k ) 个点上的值。注意在实际建模中确定母序列有时本身就是个难点。比如综合评价类问题没有天然的“母序列”。这时通常需要构造一个“虚拟最优序列”即从所有待评价方案中每个指标都取最优值效益型取最大成本型取最小组合而成。这个构造过程直接关系到评价结果的合理性。2.2 第二步数据的无量纲化处理各指标通常量纲不同比如GDP是万亿失业率是百分比直接比较没有意义。因此必须进行无量纲化也称为初始化。最常用的方法有两种初值化每个序列的所有数据都除以该序列的第一个值。 [ y_i(k) \frac{x_i(k)}{x_i(1)}, \quad k1,2,...,n ] 这种方法适用于所有数据均为正数且关注序列相对于初始时刻变化趋势的场景。它突出了相对变化率。均值化每个序列的所有数据都除以该序列的均值。 [ y_i(k) \frac{x_i(k)}{\frac{1}{n}\sum_{k1}^{n} x_i(k)}, \quad k1,2,...,n ] 这种方法更常用因为它消除了量纲并将所有序列变换到均值约为1的尺度上侧重于序列内部的形态比较。在大多数综合评价问题中我推荐使用均值化。假设我们处理后的序列为 ( Y_0, Y_1, ..., Y_m )。2.3 第三步计算关联系数这是灰色关联分析最核心的一步。关联系数描述了在某一特定点 ( k ) 上子序列与母序列的接近程度。计算公式如下 [ \xi_i(k) \frac{\min\limits_{i} \min\limits_{k} |y_0(k) - y_i(k)| \rho \cdot \max\limits_{i} \max\limits_{k} |y_0(k) - y_i(k)|}{|y_0(k) - y_i(k)| \rho \cdot \max\limits_{i} \max\limits_{k} |y_0(k) - y_i(k)|} ]别被这个公式吓到我们来拆解一下( |y_0(k) - y_i(k)| )这是第 ( k ) 点上子序列与母序列的绝对差。差值越小说明在该点上两者越接近。( \min\limits_{i} \min\limits_{k} |y_0(k) - y_i(k)| )这是全局两级最小差。即在所有子序列的所有点上找到那个最小的绝对差。可以理解为“最接近的那个点有多接近”。( \max\limits_{i} \max\limits_{k} |y_0(k) - y_i(k)| )这是全局两级最大差。即在所有子序列的所有点上找到那个最大的绝对差。可以理解为“最疏远的那个点有多疏远”。( \rho )这是一个非常重要的参数称为分辨系数。它的取值在 ( (0, 1] ) 之间通常取 0.5。它的作用是调节关联系数之间的差异大小。( \rho ) 越小关联系数之间的差异越大区分能力越强但对极端值越敏感。后面我们会专门讲如何选择 ( \rho )。这个公式的巧妙之处在于它不是一个简单的倒数关系。它引入全局的最大最小值作为“背景值”使得关联系数 ( \xi_i(k) ) 始终落在 (0, 1] 区间内。( \xi_i(k) ) 越接近1说明在 ( k ) 点上第 ( i ) 个子序列与母序列的关联性越强。2.4 第四步计算关联度关联系数 ( \xi_i(k) ) 给出了每个点上的关联信息但我们通常需要一个整体的、综合的度量来判断整个子序列 ( X_i ) 与母序列 ( X_0 ) 的关联程度。这就是关联度 ( r_i )。最常用的计算方法是取关联系数的平均值 [ r_i \frac{1}{n} \sum_{k1}^{n} \xi_i(k) ] 关联度 ( r_i ) 是一个介于0和1之间的数。( r_i ) 越大说明子序列 ( X_i ) 与母序列 ( X_0 ) 的整体关联性越强。2.5 第五步关联度排序与分析根据计算出的关联度 ( r_1, r_2, ..., r_m ) 进行从大到小排序。这个排序就揭示了各个子序列因素或方案对母序列结果或理想目标的“影响力”或“贴近度”排名。在因素分析中关联度大的因素被认为是影响系统主行为的关键因素。在方案评价中关联度大的方案被认为是更接近理想最优方案的方案即综合最优方案。3. 关键参数与实操陷阱详解理论看起来清晰但一到实际编程和比赛应用坑就来了。下面这几个点是决定你模型成败和论文高度的关键。3.1 分辨系数 (\rho) 的选择不是永远等于0.5很多教材和入门文章会告诉你分辨系数 (\rho) 通常取0.5。这在大多数情况下没问题但它不是一个铁律。(\rho) 的作用是放大或缩小关联系数之间的差异。当 (\rho) 较小时如0.1~0.3公式中 ( \rho \cdot \max ) 项变小使得关联系数 ( \xi_i(k) ) 对绝对差 ( |y_0(k)-y_i(k)| ) 更加敏感。这会拉大不同序列关联度之间的差距增强模型的“分辨力”。但风险是如果数据中存在个别异常点导致 ( \max ) 很大那么关联系数可能会整体被压得很低且不稳定。当 (\rho) 较大时如0.7~1( \rho \cdot \max ) 项变大降低了绝对差对关联系数的影响使得各关联系数都趋向于1差异变小模型的分辨力下降但稳定性增强。实操建议敏感性分析在你的模型中尝试多个 (\rho) 值例如0.1, 0.2, 0.3, 0.5, 0.7, 0.9观察关联度排序是否发生变化。如果排序稳定说明你的结论是稳健的在论文中写明“经过敏感性检验结论对分辨系数 (\rho) 不敏感”这是一个很大的加分项。依据数据特征选择如果数据质量高波动平稳想突出主要因素可以尝试较小的 (\rho)。如果数据噪声较大为了避免个别极端值主导结果应使用较大的 (\rho)。不要忘记说明在论文中必须明确写出你选择的 (\rho) 值及其理由哪怕是“依据惯例取 (\rho0.5)”。3.2 无量纲化方法的影响初值化 vs 均值化选择不同的无量纲化方法可能会影响最终的关联度排序这是因为它们改变了序列的“形状”。初值化将所有数据锚定在起点第一个数据。它特别关注各序列相对于自身起点的变化过程。如果所有序列的起点差异很大但变化趋势相似初值化后它们的形状会非常接近。均值化将所有数据锚定在平均值。它更关注序列围绕其均值波动的形态。它削弱了起点和绝对数值的影响纯粹比较波动模式。场景选择如果你想分析的是“增长率趋势”的关联性例如分析哪些因素的增长率趋势与GDP增长率趋势最像用初值化。如果你想进行的是“综合水平”的评价例如评价几个方案谁更接近理想方案而理想方案是各指标的最优值用均值化更公平因为它消除了各指标原始量级不同带来的偏见。最稳妥的做法和 (\rho) 一样做一下稳健性检验。分别用两种方法计算看排序结果是否一致。如果一致结论可信度极高。如果不一致就要深入分析数据特点并在论文中解释你最终选择某种方法的理由。3.3 母序列的构造综合评价中的“靶心”在因素分析中母序列是明确的如GDP。但在多指标方案评价中母序列需要自己构造即“理想最优方案”。这里的关键在于指标类型的判断。效益型指标数值越大越好如利润、升学率。成本型指标数值越小越好如成本、污染浓度、故障率。区间型指标数值落在某个特定区间内最好如人体体温、PH值。构造母序列 ( X_0 ) 时对于效益型指标( x_0(k) \max\limits_i (x_i(k)) )取所有方案中该指标的最大值。对于成本型指标( x_0(k) \min\limits_i (x_i(k)) )取所有方案中该指标的最小值。对于区间型指标设最优区间为 ([a, b])则 ( x_0(k) \begin{cases} a, \text{if } x_i(k) a \ x_i(k), \text{if } a \leq x_i(k) \leq b \ b, \text{if } x_i(k) b \end{cases} )但更常见的做法是将其转化为成本型通过计算与区间中点的距离或效益型指标后再处理。一个极易忽略的坑构造完母序列后必须对所有序列包括母序列一起进行无量纲化处理。不能先对子序列无量纲化再用变换后的数据去构造母序列这会导致逻辑错误和尺度混乱。4. 完整Python代码实现与逐行解读理解了原理和陷阱我们来看代码。我将提供一个带有详细注释、可直接复用的Python函数并模拟一个评价“不同城市发展水平”的案例。import numpy as np import pandas as pd def grey_relation_analysis(data, ref_idxNone, rho0.5, methodmean): 灰色关联分析函数 Parameters: ----------- data : numpy.ndarray or pandas.DataFrame 原始数据矩阵每一行代表一个方案/因素每一列代表一个指标/时间点。 如果是综合评价第一行通常是母序列理想最优方案。 如果是因素分析ref_idx需指定哪一行是母序列。 ref_idx : int, optional 母序列所在的行索引。如果为None则默认第一行(0)为母序列。 rho : float, optional 分辨系数默认0.5。 method : str, optional 无量纲化方法mean为均值化initial为初值化默认mean。 Returns: -------- result_df : pandas.DataFrame 包含关联系数矩阵和关联度向量的DataFrame。 correlation_degree : numpy.ndarray 关联度向量。 # 1. 数据准备 if isinstance(data, pd.DataFrame): data data.values data data.astype(float) # 确保为浮点型 if ref_idx is None: ref_idx 0 m, n data.shape # m个序列n个指标/时间点 print(f数据形状: {m}个序列, {n}个指标) # 2. 无量纲化处理 normalized_data np.zeros_like(data) if method mean: # 均值化 for i in range(m): mean_val np.mean(data[i, :]) if mean_val 0: raise ValueError(f第{i}行序列的均值为0无法进行均值化处理。) normalized_data[i, :] data[i, :] / mean_val elif method initial: # 初值化 for i in range(m): initial_val data[i, 0] if initial_val 0: raise ValueError(f第{i}行序列的初值为0无法进行初值化处理。) normalized_data[i, :] data[i, :] / initial_val else: raise ValueError(method参数必须是mean或initial) print(无量纲化后数据:) print(normalized_data) # 3. 计算绝对差序列 ref_seq normalized_data[ref_idx, :] # 母序列 abs_diff np.zeros((m, n)) for i in range(m): abs_diff[i, :] np.abs(ref_seq - normalized_data[i, :]) print(\n绝对差矩阵:) print(abs_diff) # 4. 计算全局最小差和最大差 min_diff np.min(abs_diff) max_diff np.max(abs_diff) print(f全局最小差 min: {min_diff}) print(f全局最大差 max: {max_diff}) # 5. 计算关联系数矩阵 correlation_coefficient np.zeros((m, n)) for i in range(m): for j in range(n): denominator abs_diff[i, j] rho * max_diff if denominator 0: # 如果绝对差和最大差都为0说明完全一致关联系数为1 correlation_coefficient[i, j] 1.0 else: correlation_coefficient[i, j] (min_diff rho * max_diff) / denominator print(f\n分辨系数 rho {rho}) print(关联系数矩阵:) print(correlation_coefficient) # 6. 计算关联度 correlation_degree np.mean(correlation_coefficient, axis1) # 对每一行每个序列求平均 print(\n关联度:) for i in range(m): print(f序列 {i}: {correlation_degree[i]:.6f}) # 7. 整理结果为DataFrame index_list [f序列{i} for i in range(m)] columns_list [f指标{j1} for j in range(n)] [关联度] result_matrix np.column_stack((correlation_coefficient, correlation_degree.reshape(-1, 1))) result_df pd.DataFrame(result_matrix, indexindex_list, columnscolumns_list) return result_df, correlation_degree # 模拟案例评价三个城市的发展水平 # 假设我们从统计年鉴获取了三个城市A、B、C的4项指标数据 # 指标1人均GDP万元效益型 # 指标2城镇失业率%成本型 # 指标3PM2.5年均浓度微克/立方米成本型 # 指标4每万人拥有医生数人效益型 print(*50) print(案例基于灰色关联的三个城市发展水平评价) print(*50) # 原始数据每一行代表一个城市每一列代表一个指标 # 行 [城市A, 城市B, 城市C] # 列 [人均GDP, 失业率, PM2.5, 医生数] raw_data np.array([ [12.5, 3.2, 35, 42], # 城市A [9.8, 5.1, 55, 28], # 城市B [15.2, 2.9, 28, 50] # 城市C ]) print(原始数据矩阵城市 x 指标:) print(raw_data) # 第一步构造理想最优序列母序列 # 人均GDP效益型取最大 - 15.2 # 失业率成本型取最小 - 2.9 # PM2.5成本型取最小 - 28 # 医生数效益型取最大 - 50 ideal_seq np.array([15.2, 2.9, 28, 50]).reshape(1, -1) # 将母序列添加到数据矩阵的顶部 analysis_data np.vstack([ideal_seq, raw_data]) print(\n构造的分析数据矩阵第一行为理想最优序列) print(analysis_data) # 第二步进行灰色关联分析 # 使用默认参数rho0.5, 均值化 result_df, r grey_relation_analysis(analysis_data, ref_idx0, rho0.5, methodmean) print(\n *50) print(灰色关联分析结果) print(*50) print(result_df) # 第三步排序并解读 # 注意关联度结果中第一行是理想序列与自身的关联度应为1我们关心的是后三行三个城市 city_degrees r[1:] # 取出三个城市的关联度 city_names [城市A, 城市B, 城市C] ranking np.argsort(-city_degrees) # 降序排列的索引 print(\n城市发展水平排序关联度越高越接近理想状态) for i, idx in enumerate(ranking): print(f第{i1}名: {city_names[idx]}, 关联度 {city_degrees[idx]:.6f})代码关键点解读与避坑指南数据输入格式函数设计为兼容numpy数组和pandas的DataFrame这是处理实际数据通常从Excel/CSV读取的最佳实践。DataFrame有标签更直观。无量纲化的健壮性代码中检查了均值或初值是否为0避免除零错误。在实际数据中如果遇到0值需要根据业务背景判断是否合理有时需要进行数据平移如所有值加一个极小常数或更换指标。关联系数计算的边界情况当abs_diff[i, j]和max_diff都为0时分母为0。这种情况发生在某个序列与母序列完全一致时在构造的理想序列分析中母序列自身就会出现此时关联系数应定义为1。代码中对此进行了处理。结果展示使用pandas.DataFrame输出结果清晰美观关联系数和关联度一目了然方便后续写入论文或报告。案例中的细节构造ideal_seq时我们根据指标类型分别取最大或最小值。这是综合评价的标准做法。将构造的母序列通过np.vstack添加到原始数据顶部形成一个完整的分析矩阵。注意此时ref_idx0即指定第一行为母序列。最终排序时我们忽略了结果中的第一行理想序列与自身的关联度必为1只对后三行三个城市的关联度进行排序。运行这段代码你会得到每个城市在每个指标上的关联系数以及一个综合的关联度。关联度越高的城市说明其四项指标的整体表现越接近我们定义的“理想城市”因此发展水平综合评价越高。5. 数学建模实战从赛题到论文的完整链路掌握了原理和代码我们来看如何将它应用到真正的数学建模竞赛中。以一道典型的评价类赛题为例假设题目是“基于多指标的城市韧性评估与排序”。韧性城市是指城市能够消化并吸收外界干扰保持其主要功能正常运行的能力。题目给出了10个城市在“经济韧性”、“社会韧性”、“基础设施韧性”、“生态韧性”四个维度下的共12项具体指标数据。5.1 第一步模型选择与论证在论文的“模型建立”部分你不能直接说“我们选用灰色关联分析”。你需要进行论证“本题要求对10个城市的韧性水平进行综合评估与排序。评估所依据的指标多达12项且各指标量纲、数量级各异属于典型的多指标综合评价问题。鉴于题目所给数据为静态横截面数据且各城市样本量有限n10符合‘小样本、贫信息’的系统特征。灰色关联分析Grey Relational Analysis, GRA恰恰适用于处理此类信息不完全确定的系统它通过计算各城市指标序列与理想最优序列的几何形状贴近度即关联度来量化其综合表现避免了传统统计方法对数据量和分布的严格要求。因此本研究采用灰色关联分析模型对城市韧性进行评价。”5.2 第二步数据处理与母序列构造这是论文中需要详细说明的部分。数据清洗检查是否有缺失值、异常值。对于缺失值可采用均值插补、回归插补或直接删除该样本若样本量充足。在论文中需说明处理方法。指标类型判断与正向化明确每个指标是效益型、成本型还是区间型。将成本型指标通过倒数法或差值法转化为效益型指标以保证所有指标“越大越好”的一致性。例如“失业率成本型”可转化为“就业稳定度 1 / 失业率”或“就业稳定度 Max(失业率) - 失业率”。构造虚拟理想序列对每个效益型指标取10个城市中的最大值对每个成本型指标已正向化同样取最大值。构成一个由12个最优值组成的“理想韧性城市”序列 ( X_0 )。5.3 第三步模型求解与结果分析调用我们编写的grey_relation_analysis函数进行计算。在论文中你需要展示关键过程可以以表格形式展示原始数据、正向化后的数据、无量纲化后的数据可选、绝对差矩阵的一部分。展示核心结果必须用清晰的表格展示最终的“关联系数表”和“关联度及排序表”。这是评阅老师重点看的地方。进行深度分析整体排序分析根据关联度排序指出韧性最强的城市和最弱的城市。分维度分析将12项指标归类回四个韧性维度。计算每个城市在各维度下指标关联系数的平均值分析哪个城市在经济韧性上表现突出哪个城市在生态韧性上存在短板。这能体现你的分析深度。灵敏度分析改变分辨系数 ( \rho )如取0.3, 0.5, 0.7观察排序是否稳定。如果稳定说明模型结论可靠如果个别城市位次发生变化需分析原因是否其关联度与相邻城市非常接近。5.4 第四步模型检验与优化论文提分关键单独使用灰色关联可能会被质疑方法单一。为了增强说服力可以进行模型检验或组合优化排序一致性检验使用另一种经典评价方法如TOPSIS法对同一数据进行分析。计算两种方法得出的排序结果的斯皮尔曼等级相关系数。如果相关系数高且显著则证明你的灰色关联分析结果是稳健的。组合权重优化进阶基础的灰色关联将各指标视为同等重要。在实际中不同指标重要性不同。可以引入权重。主观赋权法通过专家打分AHP层次分析法确定各指标权重 ( w_j )。客观赋权法利用数据本身变异程度熵权法或冲突性CRITIC法确定权重。计算加权关联度将关联系数公式中的均值计算改为加权平均 [ r_i \sum_{k1}^{n} [w_k \cdot \xi_i(k)], \quad \sum_{k1}^{n} w_k 1 ] 在论文中实现并对比“等权关联度”和“加权关联度”下的排序差异并讨论其合理性能极大提升论文的深度和广度。6. 常见问题、误区与排查清单在实际自学和参赛过程中你会遇到各种各样的问题。下面这个清单是我和队友们踩过坑后的总结。问题现象可能原因排查与解决方案关联度计算结果全部非常接近10.9或全部非常接近1. 分辨系数 ( \rho ) 取值过大接近1。2. 数据未经无量纲化或无量纲化方法不当导致绝对差数量级悬殊( \max ) 极大。3. 母序列构造错误例如与子序列用了不同的标准化方法。1. 尝试减小 ( \rho ) 值如0.2或0.3。2. 检查并确保所有序列包括母序列一起进行了正确的无量纲化均值化或初值化。3. 打印出绝对差矩阵abs_diff观察其数值范围。如果存在某个极大值检查对应的原始数据点是否为异常值。关联度出现NaN非数或inf无穷大1. 数据中存在0值进行初值化时作为分母导致错误。2. 绝对差和max_diff均为0导致关联系数分母为0虽然代码已处理但需理解原因。1. 检查数据确保初值化时序列首项不为0均值化时序列均值不为0。如有必要对整体数据做适当平移如所有值加一个极小常数ε。2. 若分母为0说明两序列完全一致关联度应为1。检查代码中对此边界情况的处理是否完善。改变无量纲化方法后排序结果截然不同不同无量纲化方法强调了数据的不同特征初值化强调变化过程均值化强调波动形态。这不一定是个“错误”而是一个发现。你需要结合问题背景分析- 如果你的问题是分析增长趋势的关联性如哪些因素的增长趋势与GDP增长趋势最像那么初值化的结果更可信。- 如果你的问题是静态综合水平评价如哪个方案更优那么均值化的结果更可信。- 在论文中应该汇报两种方法的结果并进行稳健性讨论。加权关联度计算后结果与主观认知严重不符权重设置不合理。主观赋权可能带有偏见客观赋权如熵权法可能因数据变异小而导致权重失真。1.交叉验证权重用AHP、熵权法、CRITIC法分别计算权重观察其差异。如果差异大需审视指标体系和数据。2.敏感性分析微调权重观察排序是否发生剧烈变化。如果某个指标的微小变动导致结果大变说明模型对该指标权重敏感需在论文中重点说明。3.结合业务逻辑最终权重必须有一定的业务解释性不能完全依赖数学结果。与TOPSIS等方法排序结果差异很大不同评价方法的原理和侧重点不同。灰色关联看“形状相似”TOPSIS看“距离接近”。1. 这是正常现象。计算两种排序的斯皮尔曼等级相关系数量化其一致性。2. 分析产生差异的主要原因是某个指标的特殊分布导致的还是个别“偏科”的城市导致的3. 在论文中可以将此作为“模型对比与讨论”的一部分分析各自优缺点并综合给出最终建议这反而体现了思考的全面性。最后分享一个我自己的深刻体会灰色关联分析是一个“形而上”的模型它的优势在于处理不确定性和趋势分析。但它给出的关联度是一个相对值只能用于排序和比较其绝对值的大小比如0.7和0.8本身没有绝对的物理意义不宜过度解读。在数学建模论文中一定要说清楚“我们为什么用它”展示清楚“我们怎么用它”并坦诚地讨论“它的结果意味着什么以及有什么局限”。把这三点讲透彻了哪怕最后排名不是第一你的模型部分也一定能拿到高分。
返回列表