news 2026/9/30 3:58:27

北交研究生机器学习测试复盘:从考点分布到高效备考策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
北交研究生机器学习测试复盘:从考点分布到高效备考策略

说实话,考完北交研究生机器学习测试走出教室的那一刻,我心里就一个念头:如果早两个月按“框架—推导—串联”的方式复习,后面那几周根本不用熬得那么狼狈。后来和一起备考的同学复盘,大家最一致的结论是——这套试卷其实不偏不怪,难的是你必须在有限时间里,把机器学习从数据处理到模型评估的整条链路一次串起来。这篇就当一次完整复盘:考点分布、资料怎么取舍、每个高频知识点怎么理解、答题时踩过哪些坑,我都会写清楚。无论是北交在读研究生,还是其他学校正准备机器学习课程考试的同学,都可以照着这个思路来。

1. 先弄清楚:北交研究生机器学习测试到底考什么

1.1 这门课在研究生阶段是什么定位

研究生阶段的机器学习课程,和本科同名课程最大的区别在于:本科可以只讲“怎么调用库、怎么跑通模型”,研究生层次的测试默认你已经具备基本的线性代数、概率论和微积分基础,考察重心落在“能不能解释算法为什么有效、能不能完成公式推导、能不能在具体场景里做对模型选择”。

以北交研究生机器学习课程为例,一学期大概36到48学时,平时会有2到3次编程或者推导型作业,期末测试一般以闭卷或半开卷形式出现。半开卷通常是允许带一张自己手写的A4纸——这张纸怎么利用好,后面会单独说。题型上,常见的组合是:概念简答题、公式推导题、算法流程描述题,再加一个基于给定场景的应用分析题。整体上不要求你背下全部推导,但核心算法的关键公式必须能写出来。

1.2 考点覆盖范围

我按我们这轮的试卷结构反推了一下,覆盖面大概是这样的:

  • 数据预处理与特征工程:标准化、归一化、缺失值处理、分类特征编码、数据划分;
  • 线性模型:线性回归、梯度下降、最小二乘、逻辑回归、Softmax多分类;
  • 决策树与集成学习:信息熵、信息增益、基尼指数、剪枝、随机森林、GBDT思路;
  • 支持向量机:间隔、对偶、核函数的基本思想,如果课时够就会涉及;
  • 无监督学习:K-Means、PCA;
  • 深度学习基础:神经元、反向传播、常见激活函数;
  • 模型评估与调参:过拟合、交叉验证、评估指标、学习曲线。

这里有一个规律:学校不要求你对每个方向都钻得很深,但会要求你掌握机器学习的基础架构,也就是从数据进入模型、到损失函数、再到优化求解、最后评估反馈的闭环。考试不一定会出超复杂的SVM推导,但一定会出现“给一个业务场景,让你选择模型并说明理由”这类应用题。

1.3 研究生测试和本科期末的区别

很多同学用本科期末的方式复习,最后会吃亏。本科期末偏爱直接问“什么是过拟合”,研究生版本的类似题目会加一个转折,比如“用验证集判断过拟合时,如果测试集也参与调参会出现什么问题”。这就是研究生层次常见的考法:不直接考定义,而是考你对概念边界的理解,也就是对数据泄露、信息泄露这类问题的敏感度。

因此复习时不能只背结论,还要知道每个方法在什么前提条件下成立、在什么情况下会失效。如果说本科测试考的是answer,研究生测试考的就是reasoning。我自己的体会是:把考点按“概念定义、公式推导、流程掌握、场景应用”四个维度检查一遍,比单纯刷题要高效得多。

2. 网上那些经典资料,实际用起来怎么取舍

说到机器学习复习,大家都会搜到吴恩达、李宏毅、西瓜书、各种“机器学习知识点总结”、还有一堆“八股”总结。资料太多反而是负担。我实际用下来,比较合理的主次关系是这样的。

2.1 主线教材:《机器学习》(西瓜书)

如果目标是深度的课程考核,建议主线用周志华的《机器学习》而不是网上课程视频。因为考试考查的推导和概念,基本都源自这本书或者老师课件。读的时候不需要每一章都精读,前几章(绪论、模型评估、线性模型)要非常熟,决策树、神经网络、支持向量机、集成学习这四章至少要会推核心公式,后面的聚类、降维抓主要思想即可。

书里的公式推导比较密集,第一次读大概率看不懂,这很正常。正确读法是配合课堂PPT一起看,先看PPT的结论,再用西瓜书的推导补细节。如果哪个公式卡住了,不要死磕太久,标记下来跳过去,等整体框架建立后再回来看,往往就通了。

2.2 吴恩达机器学习:只用来补基础

吴恩达的《机器学习》绝对是全球最友好的入门课,对线性代数不熟、矩阵推导没底的同学非常有用。但必须承认,它面向的是本科生甚至非理工背景的学习者,难度比这次研究生测试低一个档次。它把每个概念讲得极其细致,连带梯度下降的可视化都做了,这一点很适合找感觉。

所以我的建议是:如果你已经具备基础,不需要花整段时间刷课;如果哪里卡住了(比如梯度下降到底在干什么、正规方程怎么来的),就去看对应章节,当作随查词典用。这比从第一集看到第十集效率高得多。我当时就在复习中期专门回看了“梯度下降”和“学习率”两节,十几分钟就把模糊的直觉补齐了。

2.3 李宏毅机器学习:用来建立直觉

李宏毅的课程特点是更新快、案例生动,对深度学习部分讲得很贴近工业界,经常拿真实任务举例。它的价值主要在帮你建立“这个算法到底在做什么”的直觉,比如听完一个人脸识别案例,整个神经网络的工作流程就活了。但是课程覆盖太广,很多内容考试不会涉及。

建议只挑其中讲线性模型、神经网络、反向传播的部分来看,其余结合自己的课时进度选择性跳过。尤其是反向传播那一段,李宏毅的讲法比很多教材都直观,理解起来省力不少。

2.4 冲刺期的“八股”总结:能用但别依赖

考前冲刺阶段,网上大量“机器学习八股文”“知识点总结”确实能帮你快速回忆术语。这类材料的优点是覆盖了标准答案里高频出现的关键词,比如偏差方差、正则化、过拟合、梯度消失等,很适合考前最后三天用来快速扫描盲区。

缺点是它把知识点变成了一个个孤立条目,缺乏推导过程。如果完全靠八股裸上,遇到要求手写推导的题目会很尴尬。所以正确姿势是:用它查漏,不用它当主课。可以把八股总结当成一个知识清单,每看到一个名词,就问自己“我能推导它吗?能举出适用场景吗?能说出失效边界吗?”能,说明掌握;不能,赶紧回教材补。

2.5 动手项目:学有余力再上

如果备考时间在一个月以上,强烈建议至少跑两个小项目:一个线性回归(预测连续值),一个逻辑回归或决策树(分类)。不需要大规模,用Python和Pandas就够了。重点放在熟悉数据处理的常见套路:读取数据、处理缺失值、划分训练集测试集、标准化特征、打印评估结果。做完这两个,你会发现很多公式从“背”变成了“知道为啥这么写”,整个学习闭环才算真正闭合。

我把这些资料的定位整理了一张表,方便参考:

资料核心价值局限性优先级
西瓜书+课堂PPT系统、贴近考点、推导齐全公式密集,初读劝退主线
吴恩达机器学习基础概念友好、梯度下降讲得清楚深度不够按需补充
李宏毅机器学习直觉好、案例新、贴近工业范围太广、深度参差挑重点看
知识点总结/八股考前快速回忆术语缺乏推导、条目化冲刺辅助
课后小项目打通理论与代码需要时间学有余力

3. 高频考点逐个拆解:不只是背公式

这是全文最重的部分。我把备考中反复出现的考点按“数据处理—线性模型—决策树—评估”拆开讲,尽量给出推导逻辑而不是只丢结论。

3.1 数据处理到底在做什么

考试里数据处理往往放在第一道或第二道题,分值不高但很容易失分,因为大家总觉得它简单。实际上它考的是你对机器学习流程底层的理解。

先说标准化和归一化。为什么标准化重要?最直观的解释是:如果两个特征量纲差太远,比如身高用厘米(170)而收入用元(15000),梯度下降会沿着损失函数等高线拉得很扁的形状前进,导致收敛非常慢。标准化之后两个特征的尺度大致相同,优化才平稳。常见的标准化公式是 z = (x - μ) / σ;而归一化是把数据压到0到1之间,公式是 (x - min) / (max - min)。注意考试时别把两者混答,标准化依赖均值和方差,归一化依赖最小值和最大值,这是两个完全不同的变换。

缺失值处理也是高频。常规思路有三种:直接删除样本,适合缺失比例极低的情况;用均值、中位数或众数填充,适合数值型且缺失随机的特征;用回归或模型预测填充,相当于把缺失值当作标签来学习。答题时最好补一句:必须先看缺失机制,随机缺失才能用简单填充;如果是系统性缺失,直接填均值会引入偏差,导致后续模型估计不准确。

分类特征编码要警惕顺序数字陷阱。比如把颜色“红黄蓝”编码成1、2、3,模型会误以为蓝色比红色大,从而学出错误的数值关系。所以名义变量通常用One-Hot编码,只有真正有序的等级变量(比如学历、评分)才适合直接编码。这个点在应用分析题里经常出现,用来考察你是否能把业务特征正确转成模型输入。

最后是数据划分,这里最容易埋坑。严格流程是:先把数据划分为训练集和测试集,在训练集内部再划分验证集或做交叉验证;所有预处理参数(均值和方差)都只能在训练集上计算,再作用到验证集和测试集。如果先对全量数据做了标准化再去划分,就会造成数据泄露,验证集结果虚高,上线后实际效果远不如预期。

3.2 线性回归:从最小二乘到梯度下降

线性回归几乎是每张试卷的必考题。考查点集中在:模型假设、损失函数、闭式解、梯度下降、正则化。

模型假设写成:

y = w^T x + b

损失函数用均方误差MSE:

L(w) = (1/n) Σ (y_i - w^T x_i - b)^2

最小二乘法可以直接求出闭式解。把所有样本写成矩阵形式,加上偏置项之后有:

w_hat = (X^T X)^(-1) X^T y

这里有个考点:为什么需要X^T X可逆?因为正规方程的推导需要求逆,如果特征之间存在高度共线性或样本数小于特征数,X^T X就是奇异矩阵,无法直接求逆。这也是为什么需要正则化的原因之一。复习时把这个问题想透,考试中出现“特征共线时线性回归会遇到什么问题”这类变体题就能答到点上。

梯度下降是另一高频点。对均方误差求梯度,可以得到更新规则:

w := w - η * (2/n) X^T (Xw - y)

很多同学在第一步漏掉系数2/n,虽然不致命但会扣分。推导的关键是矩阵求导的链式法则:先把Xw - y看作整体,再对内层w求导。考试时如果能顺手写出这个链式过程,阅卷观感会明显不同。

正则化部分要理解L1和L2的区别。L2正则化,也就是岭回归,在损失上加λ||w||_2^2,让参数整体变小但不会真正归零;L1正则化,也就是Lasso,加的是λ||w||_1,它的几何特征是菱形约束区域,更容易让参数在坐标轴上被压缩为0,也就是产生稀疏解。考试如果问“为什么L1能稀疏”,不要只背结论,最好描述一下二维等高线和约束区域切点的位置:L1的菱形边界有角点,损失等高线更容易和角点相切,一旦相切就产生零系数。

3.3 逻辑回归:为分类而生

逻辑回归和线性回归名字很像,但解决的任务完全不同。线性回归输出连续数值,适合回归;逻辑回归输出概率,适合二分类。

逻辑回归先把线性输出 z = w^T x + b 通过sigmoid函数:

σ(z) = 1 / (1 + e^(-z))

映射到(0,1)区间。它的损失函数不是均方误差,而是交叉熵:

L = -[y log(p) + (1 - y) log(1 - p)]

很多同学会问:为什么逻辑回归不用MSE?主要有两个原因。第一,MSE关于sigmoid的输出是非凸的,梯度下降容易陷入局部最小值;而交叉熵在参数空间整体上是凸的,更容易找到全局最优。第二,sigmoid函数在两端斜率趋近于0,如果用MSE,梯度会非常小,训练速度很慢;交叉熵引入log后会把梯度整理得更干净,推导出来是:

w := w + η * (1/n) Σ (y_i - p_i) x_i

这里的正负号要特别注意,写反是常见失分点。我自己考前默写时就在这里错过一次,后来把它单独记在A4纸易错区才放心。

多分类时,逻辑回归的推广是Softmax回归,把线性输出变成K个类别的概率分布。考试通常只要求知道思想和公式,不太会要求完整推导。逻辑回归还有一个高频考点:决策边界。逻辑回归的决策边界是线性的,因为在p=0.5处等价于w^T x + b = 0。这个结论也暗示了它适合线性可分或近似线性可分的数据,面试和笔试都很喜欢问。

3.4 决策树与集成学习:信息论的运用

决策树是各种总结材料里出现率最高的部分,而且特别爱考计算题。需要掌握的基础知识包括:

信息熵定义是:

Ent(D) = -Σ p_k log2 p_k

信息增益表示用特征a划分后熵的减少量:

Gain(D, a) = Ent(D) - Σ (|D_v|/|D|) Ent(D_v)

ID3决策树用信息增益作为划分标准,但有个缺点:偏好取值数目多的特征。比如一个无意义的ID列,每个取值只有一个样本,信息增益会非常大,但它完全没有泛化能力。为了解决这个问题,C4.5改用增益率,在信息增益基础上除以固有值,相当于对取值多的特征做惩罚。CART树则用基尼指数:

Gini(D) = 1 - Σ p_k^2

剪枝也是必考概念。预剪枝在生成过程中提前停止,速度快但容易欠拟合;后剪枝先生成完整树再自底向上剪掉子树,耗时但泛化性通常更好。答题时要注意:剪枝的根本目的是提高模型的泛化能力,不只是减少过拟合,原理是通过验证集判断剪枝前后精度变化。一整棵完全生长的树很可能把训练集的每个细节都记住,包括噪声,必须靠剪枝把它拉回来。

常见计算题模式是:给你一个小型数据集,包含若干特征,让你计算某个特征的信息增益,并选择最优划分属性。计算步骤是:先算根节点熵,再按特征取值划分子集,分别算子集熵,加权平均得到条件熵,最后相减。这一步一定要细心,算错一个小数后面全乱。我备考时连续算了三道这类题,才彻底把流程固定下来。

集成学习里,Bagging的思路是并行训练多个基学习器然后投票或平均,主要降低方差,代表性算法是随机森林;Boosting的思路是串行训练、每一轮把权重集中到上一轮分错的样本上,主要降低偏差,代表性算法是AdaBoost和GBDT。这个区别必须说清楚,我见过不少同学答反。更细的考点还包括随机森林在Bagging基础上引入特征随机选择,进一步降低树与树之间的相关性。

3.5 模型评估与调参:所有算法的共同收尾

无论什么模型,最后都要回答“这模型到底行不行”。这部分分值占比很高,而且常和应用题混在一起。

过拟合的判别是基础中的基础。如果训练误差持续下降,但验证误差开始上升,说明模型已经开始记忆训练数据中的噪声。这正是“泛化能力”这个研究生层次的核心话题,考试很可能要求你联系偏差方差分解来解释:模型复杂度增加时,偏差下降、方差上升,测试误差呈现U形曲线。训练误差低不代表模型好,真正要关心的是测试误差。

应对过拟合的措施要背熟但也要会用:收集更多数据、引入正则化、降低模型复杂度、用集成方法(随机森林比单棵决策树通常更稳)、神经网络里用Dropout和早停。答题时至少列出三条,并结合场景说一句“在这个任务中我更倾向于……”,这会让你的答案更有说服力。

评估指标按任务分。分类任务里:

  • 精确率 Precision = TP / (TP + FP),回答“预测为正的样本中有多少真的为正”
  • 召回率 Recall = TP / (TP + FN),回答“真正为正的样本中有多少被找出来”
  • F1是两者的调和平均,F1 = 2PR / (P + R)

在类别不平衡时只看准确率不靠谱。比如99%负样本,全预测负样本也有99%准确率,但毫无意义。这时通常结合PR曲线或ROC曲线。ROC曲线横轴是假正例率,纵轴是真正例率,AUC就是曲线下面积,它衡量排序能力,对类别不平衡相对稳定。如果题目里出现“信用卡欺诈检测”“用户流失预测”这类正样本极少的故事背景,一定要主动提AUC或F1,而不是只报准确率。

交叉验证的作用要写清楚:K折交叉验证把训练集分成K份,轮流用K-1份训练、1份验证,最终取平均。它不是为了提升模型准确率,而是为了稳定评估模型之间的好坏。常用的K值是5或10,样本量小的时候可以加大折数。别答成“交叉验证能增加训练数据”之类的表述,那是审题模糊。

学习曲线是压轴常客:横轴是训练样本量,纵轴是误差。如果训练误差和验证误差最终都收敛到较高水平且两者靠得很近,说明模型欠拟合;如果训练误差明显低于验证误差,说明过拟合。考前最好自己在纸上画一遍这条U形或者两条曲线的关系,考场上就不慌了。

4. 从“考前八股”到实际答题:思路复盘

4.1 概念题:不是默写定义,而是答出分层

研究生测试的简答题,不是让你写三行定义就完事。正确的答题结构分四层:定义、原因、措施、适用边界。

举个例子。“什么是过拟合?如何避免?”作答可以这样组织:定义是模型在训练集上表现好但在未见数据上表现差;原因是模型容量过大或训练数据不足,模型学到了训练噪声;应对措施包括增加数据、正则化、降低复杂度、集成、早停;最后补充一句“过拟合的判定必须依赖验证集,不能用训练集误差作为唯一判断标准”。这样就把区分度拉满,阅卷容易给高分。

考试时关键词一定要准,比如“泛化能力”“正则化”“验证集”“数据泄露”这些术语尽量原样出现,不要用同义词替换太多。阅卷老师对标准术语的敏感度很高,关键词一旦出现,分值就抓到了。

4.2 推导题:必须能徒手写完

推导题最怕的不是不会,而是“看答案都会、自己一写就卡壳”。所以备考后期,建议把以下推导全部练到不看资料默写的程度:线性回归最小二乘和梯度下降、逻辑回归交叉熵梯度的推导、决策树信息增益公式表达式、PCA最大方差目标函数推导。

我考前的做法是准备一个本子,每天晚上抽一个算法,先默写公式,再口述每一步依赖什么前提,最后拿红笔补漏。坚持三轮之后,推导题的稳定性会明显提升。这个习惯本来是为了应对考试,后来做研究看论文也一直受益,因为很多论文的推导本质上就是这类基础公式的堆叠。

4.3 应用题:先定位任务类型,再套通用框架

应用题最典型的形态是:给出一个业务背景,比如企业员工离职预测,让你描述一套机器学习解决方案。这个其实可以套通用框架:数据获取与预处理、特征工程、模型选择、训练与验证、评估与上线。

以员工离职预测为例,步骤是:先收集员工历史数据,包括在职状态、工龄、薪资、部门、考勤等;处理缺失值和异常值,对部门做One-Hot编码,对薪资等数值特征做标准化;任务类型是二分类,可选逻辑回归或决策树;用5折交叉验证评估,因为正负样本可能不平衡,指标选AUC或F1而不是准确率;上线前用测试集做最终检验。这样一个答案结构完整且不容易漏点。

我自己的经验是,这种题目扣分经常发生在忽略类别不平衡和处理缺失值的细节上。落笔前先画个小框架,比如“数据→特征→模型→评估→部署”,再逐项补内容,会比想到哪写到哪强很多。答题的条理性本身就在展示你对机器学习应用流程的掌握程度。

5. 如果让我再考一次:踩坑复盘与备考时间表

5.1 时间分配教训

我最开始的误区是花了两周刷吴恩达的视频,感觉“会了”;真正进入模拟题阶段才发现,看视频积累的自信在推导题面前完全不够用。后来调整为“教材框架→手推核心公式→串联流程→每两天一套真题式自测”,效率才上来。

如果你现在的复习时间只剩下三周,我建议按这个节奏来:第一周搭建框架并精读线性模型、决策树两章;第二周每天两个算法手推公式,同时开始做数据处理和评估指标的小题;第三周集中做应用综合题,并每天早上先花半小时默写全部核心公式,再进入新内容。最后两天只过错题和自己的易错点清单。

5.2 三个提升最明显的习惯

第一个习惯:把每个算法整理成一张“假设-损失-优化-评估”的一页卡片。假设写明它适用于什么数据、决策边界形状如何;损失写出完整表达式;优化写清梯度更新公式和关键符号;评估写明用什么指标、为什么。一张卡片就能覆盖绝大多数考点。

第二个习惯:考前两周开始每天默写一个推导题,写完立刻对照教材。我可以负责任地说,默写一遍胜过看三遍。很多推导你看时觉得顺滑,合上书才发现第二步就开始犹豫。

第三个习惯:对每个算法问一句“这个算法在什么条件下会失效”。比如线性回归在特征共线时失效、K-Means在类别不均衡时失效、决策树在数据维度高时容易过拟合。写不出来的就是盲区,考前一天集中补。

5.3 考试当天的小技巧

考试前一晚不要刷新题,把卡片和流程过一遍就行。考场上先整体浏览一遍试卷,把最熟悉的题目先做,推导题写到最后再检查符号和分母。如果要带A4纸,不要抄大段文字,应该写公式索引和易错点,比如“逻辑回归梯度正负号”“信息增益公式”“标准化公式”。纸张空间有限,只有真正易错的地方才值得占用位置。

我个人现在做项目最大的体会是:研究生阶段的考试,看上去是在考公式,实际上是在考你有没有把机器学习当作一套“数据—损失—优化—评估—迭代”的系统在工作。公式是系统里的零件,理解了这句话,复习时就不会再被各种资料牵着走。备考那段时间虽然难熬,但把整条链路串起来之后,再看更复杂的模型、更花哨的网络结构,心里都有底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 3:58:25

论文降AI后必查的8个关键位置:从术语到数据引用的避坑指南

先说一个很多人踩过的坑:费了两天劲把论文的AI痕迹指标压下去之后,满以为万事大吉,结果交上去被导师一句话打回来——“你这第3章的公式和图号对不上,第5节读起来像两个人写的”。这种情况我见过太多次了,而且越是用AI…

作者头像 李华
网站建设 2026/9/30 3:57:20

开悟AIArena暑假赛深度学习竞赛:从基线到提分实战复盘

1. 先把这场比赛在考什么搞明白1.1 拆开标题里的三个词我报名这次暑假赛之前,先花了一个晚上把标题里的三个词拆开看:开悟、AIArena、暑假赛。这三个词各自代表一种约束,理解错了,努力方向就会偏。开悟是平台属性,意味…

作者头像 李华
网站建设 2026/9/30 3:57:10

typechecker:轻量级JS模板化类型检查工具,告别手写if堆叠

打字软件里,最让我头疼的就是各种联调场景下的类型问题。后端返回的字段类型说变就变,前端拿着字符串当数组使,页面打开直接白屏;自己写的数据解析逻辑,十几个 if 堆在那里,看到就烦。这种痛点做前端的人多…

作者头像 李华
网站建设 2026/9/30 3:55:43

STM32流水灯寄存器、标准库与HAL库三种实现方式对比

STM32流水灯寄存器、标准库与HAL库三种实现方式对比 一、实验目的 掌握直接操作寄存器的方法,理解GPIO端口的寄存器地址、位域含义与配置参数。掌握STM32标准外设库的工程搭建方法与函数式编程思路。掌握HAL库配合STM32CubeMX的快速开发方式,理解外部中…

作者头像 李华
网站建设 2026/9/30 3:55:10

实验二最近点对分治法:合并细节与C++/Python实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 3:54:44

Transformer输入输出与PyTorch代码实现:张量形状与Mask避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华