zoukankan      html  css  js  c++  java
  • 第四十六篇 入门机器学习——kNN

    No.1. k-近邻算法的特点

    No.2. 准备工作,导入类库,准备测试数据

    No.3. 构建训练集

    No.4. 简单查看一下训练数据集大概是什么样子,借助散点图

    No.5. kNN算法的目的是,假如有新的数据加入,需要判断这个新的数据属于数据集中的哪一类
    我们添加一个新的数据,重新绘制散点图

    No.6. kNN的实现过程——计算x到训练数据集中每个点的距离

    No.7. kNN的实现过程——使用argsort来获取距离x由近到远的点的索引组成的向量,进行保存

    No.8. kNN的实现过程——指定需要考虑的最近的点的个数k,并获取距离x最近的k个点的y_train中的数据

    No.9. kNN的实现过程——统计出属于不同类别的点的个数,并选择票数最多的类别

    No.10. kNN的实现过程——对预测结果进行保存,结束。

    No.11. 我们可以将kNN算法封装到一个函数中

    No.12. 然后我们处理好测试数据,直接调用这个封装好的函数,就能得到预测结果

     No.13. 机器学习的一般流程

    No.14. k-近邻算法的特殊性

    No.15. 使用scikit-learn中的kNN算法

    No.16. 模仿scikit-learn封装自己的KNNClassifier类

    No.17. 调用自己封装的KNNClassifier类

    No.18. k近邻算法的缺点
    • 缺点1:效率低下,这也是kNN算法的最大缺点,如果训练数据集有m个样本,n个特征,则预测一个新数据的时间复杂度为O(m*n)
    • 缺点2:高度数据相关,容易导致预测出错
    • 缺点3:预测结果不具有可解释性
    • 缺点4:维数灾难,随着维数的增加,原本看似很近的两个点的距离会越来越大
  • 相关阅读:
    移动端hybrid开发复盘
    node/webpack 调试 loader 等技巧
    javascript(js)小数精度丢失的解决方案
    必经之路--买房之后需要走的流程--针对 组合贷款方式
    canvas 画半圆的两种方式
    svg path 画圆
    1.快速排序
    7.桥接设计模式
    6.适配器设计模式
    5.策略设计模式
  • 原文地址:https://www.cnblogs.com/xuezou/p/9317199.html
Copyright © 2011-2022 走看看