HyperAIHyperAI

Command Palette

Search for a command to run...

用Excel玩转机器学习:第一天教你实现k-近邻回归器

在“机器学习Excel Advent日历”第一天,我们从最基础的k-NN回归器(k-最近邻回归)开始。这个模型虽简单,却是理解机器学习中“局部建模”思想的绝佳起点。 想象你要估价一套房子:最自然的做法是参考附近几套相似户型的成交价,取平均值。k-NN正是这个思路的数学实现——找到与新样本最相似的k个邻居,用它们的目标值的平均来预测。 我们以加州住房数据集为例,目标变量是中位房价(MedHouseVal,单位:10万美元),特征包括收入、房龄、房间数、人口等。先从单个连续特征(如收入)入手。在Excel中,只需计算新样本与每个训练样本的距离(如绝对差值),用RANK函数排序,选出距离最近的k个样本,再用SUMPRODUCT求其目标值的平均,即可完成预测。 当使用两个特征(如收入和房龄)时,需引入欧氏距离。但问题随之而来:不同特征的量纲差异会严重干扰距离计算。例如,若将“房龄”单位从“年”改为“十年”,或“收入”从“万”改为“十万”,结果会完全不同。k-NN本身不处理量纲,它无法自动“理解”单位差异。 更深层的问题在于特征的异质性。在加州数据集中,地理坐标(纬度/经度)、收入、人口、房间数等性质完全不同。直接用欧氏距离,相当于把“公里”和“美元”相加,毫无意义。解决方法是使用更合适的距离度量:如地理距离(经纬度转为米制)、余弦距离(用于向量方向)等。在实际应用中,选择与数据本质匹配的距离函数,能显著提升模型的合理性。 再看分类特征,如钻石的“净度”(Clarity)。若用独热编码(One-Hot),所有类别间距离相等,完全无法体现“VVS1”比“SI2”更接近的现实。若用序数编码(如IF=10, VVS1=9, ..., I1=1),则能反映真实等级关系,使距离计算更有意义。 最终结论:k-NN虽看似简单,实则暴露了距离模型的核心挑战——特征缩放与距离定义。它不自动处理量纲,也不学习特征重要性,全靠人工设计。这正是其“非参数”和“局部性”的体现。但正因如此,k-NN在Excel中可完全手写实现,直观清晰,适合理解机器学习的本质:预测,就是找相似的过去。 然而,这种对距离的敏感性也揭示了其局限:若特征尺度不一,模型效果会严重失真。这也正是后续模型(如树模型、神经网络)要解决的问题——通过结构设计,自动处理特征重要性与缩放。k-NN是起点,也是提醒:在建模之前,先思考“距离”意味着什么。

相关链接

用Excel玩转机器学习:第一天教你实现k-近邻回归器 | 热门资讯 | HyperAI超神经