You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何KNN模型默认参数下在股票喜好预测数据集上准确率达99%?

为什么默认参数的KNN能达到这么高的准确率?

以下是几个最可能的原因:

  • 模拟数据集的特征与标签关联度过强
    你自己制作的模拟数据,大概率是按照「喜欢的股票对应明确的特征区间」来设计的——比如喜欢的股票流动比率稳定在1.5-3之间、滚动市盈率在10-25、集中在某几个行业,而不喜欢的股票特征完全落在这些区间外。这种特征和标签几乎一一对应的情况,不管用什么简单模型(包括默认参数的KNN)都能轻松区分,自然准确率拉满。

  • 少数类与多数类的特征区分度极大
    虽然存在类别不平衡(500 vs 10500),但分类报告各项指标都很高,说明少数类也被精准识别了。这意味着少数类样本的特征和多数类几乎没有重叠——比如不喜欢的股票流动比率全低于0.8、市盈率超过40,和多数类的特征分布完全脱节。KNN基于距离分类,这种极端分明的分布哪怕样本量少,也能准确抓到少数类的边界。

  • 模拟数据无噪声、无重叠
    真实股票数据里,同类别样本的特征会有重叠(比如同样是喜欢的股票,市盈率可能从8到30波动),还会有异常值(比如某只喜欢的股票因为特殊事件市盈率飙到50)。但你做的模拟数据大概率是「干净」的,没有这些干扰,所有样本的特征都严格对应标签,模型不需要复杂调参就能完美拟合。

  • 默认参数刚好适配你的数据分布
    Sklearn的KNN默认用n_neighbors=5+欧氏距离,这个参数在特征区分度高的数据集上本来就表现不错。如果你的数据特征尺度一致(或者你已经做了标准化/归一化),欧氏距离能准确衡量样本间的相似性,5个邻居的设置也不会因为样本不平衡被多数类完全淹没——毕竟少数类特征太特殊,邻居里只会有同类样本。


内容的提问来源于stack exchange,提问作者JayTicku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:05:27