【问题标题】:Data Mining KNN Classifier数据挖掘 KNN 分类器
【发布时间】:2014-02-02 23:35:04
【问题描述】:

假设某保险公司的数据分析师被要求建立一个预测模型,以预测客户是否会购买移动房屋保险单。他/她尝试了具有不同邻居数量(k=1、2、3、4、5)的 kNN 分类器。她/他在训练数据上获得了以下 F 分数:(1.0;0.92;0.90;0.85;0.82)。基于此,分析师决定以 k=1 部署 kNN。这是一个不错的选择吗?在这种情况下,您将如何选择最佳邻居数?

【问题讨论】:

  • 就目前而言,这看起来就像家庭作业
  • @user3195317 这可能会晚一周,但所以不是要求家庭作业的地方!请不要那样做!下次阅读如何提问页面
  • @user3195317 如果您想根据指南改进您的问题,我认为它应该得到答案。下次你问问题时,不要忽视规则。谢谢。

标签: database algorithm data-mining knn


【解决方案1】:

使用整个训练集选择预测算法的参数不是一个好主意,因为结果将偏向于这个特定的训练集,并且没有关于泛化性能的信息(即对未见案例的性能)。您应该应用交叉验证技术,例如10 折交叉验证以选择一个范围内的最佳 K(即具有最大 F 值的 K)。 这涉及将您的训练数据分成 10 等份,保留 9 份用于训练,1 份用于验证。迭代使得每个部分都被排除在外以进行验证。如果您进行了足够多的折叠,这也可以让您获得 F 值的统计数据,然后您可以测试不同 K 值的这些值是否具有统计显着性。

参见例如还: http://pic.dhe.ibm.com/infocenter/spssstat/v20r0m0/index.jsp?topic=%2Fcom.ibm.spss.statistics.help%2Falg_knn_training_crossvalidation.htm

然而,这里的微妙之处在于,用于预测的数据点数量和 K 值之间可能存在依赖关系。因此,如果您应用交叉验证,您将使用 9/10 的训练集进行训练......不确定是否对此进行了任何研究以及如何在最终训练集中进行纠正。无论如何,大多数软件包只使用上述技术,例如请参阅链接中的 SPSS。 一种解决方案是使用留一法交叉验证(每个数据样本被遗漏一次以进行测试),在这种情况下您有 N-1 个训练样本(原始训练集有 N 个)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-21
    • 2023-03-27
    • 2010-10-21
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2011-02-07
    • 2021-11-16
    相关资源
    最近更新 更多