【机器学习-K近邻算法】绝对通俗易懂的机器学习算法之一

news/2024/11/27 1:16:01/

1.k近邻算法

1.1 k近邻算法简介
  1.定义:
    就是通过你的“邻居”来判断你属于哪个类别。
  2.如何计算你到你的“邻居”的距离?
    一般时候,都是使用欧氏距离。
1.2 k近邻算法的api初步使用
  1.sklearn
    优势:
    1.文档多,且规范
    2.包含的算法多
    3.实现起来容易
  2.sklearn中包含内容
    分类、聚类、回归
    特征工程
    模型选择、调优
  3.knn中的api
    sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
      参数;
      n_beighbors – 选定参考几个邻居
  4.机器学习中实现的过程
    1.实例化一个估计器
    2.使用fit方法进行训练
1.3 距离度量
  1.欧氏距离
    通过距离平方值进行计算
  2.曼哈顿距离
    通过距离的绝对值进行计算
  3.切比雪夫距离
    通过维度(x,y)的最大值进行计算
  4.闵可夫斯基距离
    p=1,就是曼哈顿;
    p=2,就是欧式;
    p=∞,就是切比雪夫。
  小结:前面四个距离公式,都是把单位相同看待了,所以计算过程不是很科学。
  5.标准欧式距离
    在计算过程中添加标准差,对量刚数据进行处理
  6.余弦距离
    通过cos思想进行完成
  7.汉明距离[了解]
    一个字符串到另一个字符串需要变换几个字母,进行统计
  8.杰卡德距离[了解]
    通过交并集进行统计
  9.马氏距离[了解]
    通过样本分布进行计算
1.4 k值选择
  K值过小:
    容易受到异常点的影响过拟合
  k值过大:
    受到样本均衡的问题欠拟合
  拓展:近似误差-- 过拟合
  --在训练集上表现好,测试集表现不好
  估计误差好才是真的好!
1.5 kd树
  1.构建树
  2.最近领域搜索
  案例:
  一,构建树
    第一次:
    x轴-- 2,5,9,4,8,7–> 2,4,5,7,8,9
    y轴-- 3,4,6,7,1,2–> 1,2,3,4,6,7

    首先选择x轴,找中间点,发现是(7,2)

    第二次:
    左面:(2,3),(4,7),(5,4) --> 3,4,7
    右面:(8,1),(9,6) --> 1,6

    从y轴开始选择左边选择点是(5,4),右边选择点(9,6)

    第三次:
    从x轴开始选择
  二,搜索
    1.在本域内,没有进行跨域搜索
    2.要跨到其他域搜索
1.6 案例:尾花种类预测–数据集介绍
  1.获取数据集
  sklearn.datasets.
  小数据:
    sklearn.datasets.load _*
    注意:
    该数据从本地获取
  大数据集:
    sklearn.datasets.fetch _*
    注意:
    该数据从网上下载
    subset–表示获取到的数据集类型
  2.数据集返回值介绍
  返回值类型是bunch–是一个字典类型
  返回值的属性:
    data:特征数据数组
    target:标签(目标)数组
    DESCR:数据描述
    feature_names:特征名
    target_names:标签(目标值)名
  3.数据可视化
    import seaborn
    seaborn.lmplot ()
    参数:
    x,y-- 具体x轴,y轴数据的索引值
    data-- 具体数据
    hue-- 目标值是什么
    fit_reg–是否进行线性拟合
  4.数据集的划分
    api;
    sklearn.model selection.train testsplit(arrays, *options)
    参数:
    x–特征值
    y–目标值
    test size-- 测试集大小
    ramdom state-- 随机数种子返回值:
    x_train,x_test,y_train,y_test
1.7 特征工程-特征预处理
  1.定义
    通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
  2.包含内容:
    归一化
    标准化
  3.api
    sklearn.preprocessing
  4.归一化
    定义:
      对原始数据进行变换把数据映射到(默认为[011)之间
    api:
      sklearn.preprocessing.MinMaxScaler (feature_range=(0,1] )
      参数:
      feature_range – 自己指定范围,默认0-1
    总结:
      鲁棒性比较差(容易受到异常点的影响)
      只适合传统精确小数据场景(以后不会用你了)
  5.标准化
    定义:
      对原始数据进行变换把数据变换到均值为0,标准差为1范围内
    api:
      sklrarn.preprocessing.StandardScaler( )
    总结:
      异常值对我影响小
      适合现代嘈杂大数据场景(以后就是用你了)


http://www.ppmy.cn/news/74465.html

相关文章

xxl-sso 单点登录

目录 1 项目启动修改Host文件运行路径SSO登录/注销流程验证 2 分析登录流程① 首次访问 client1 的 http://xxlssoclient1.com:8081/xxl-sso-web-sample-springboot/ ,进入过滤器② 请求重定向至 server的 http://xxlssoserver.com:8080/xxl-sso-server/login?redi…

代码随想录 哈希表 Java

文章目录 (简单)242.有效的字母异位词(简单)383. 赎金信(中等)49. 字母异位词分组(*中等)438. 找到字符串中所有字母异位词(简单)349. 两个数组的交集&#x…

无效数据处理攻略: 如何从源头开始预防无效数据带来的风险

数据处理在现代社会中变得越来越重要,而对于数据的可靠性和准确性,我们始终非常关注。然而,即使在对数据进行了精心管理的情况下,无效数据依然可能存在,并可能对数据分析和决策带来不良影响。因此,处理无效…

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别]

基于Freertos的ESP-IDF开发——5.使用按键[不带消抖、带消抖、长按短按识别] 0. 前言1. 确定GPIO引脚2. 触发函数(不带消抖)3. 触发函数(带消抖)4. 长按和短按识别5.其他FreeRtos文章 0. 前言 这一节我们来学习使用按键操作。包括带消抖和不带消抖。 由于之前已经学习过FreeR…

HTML+CSS实训——Day01——安装好环境+写一个简单的应用启动页面

前言 学校最近开始实训周了,一上就是一个月,本来想在课上学点考研的东西的,但是无奈任务重,而且最后还能有点小奖励,就认真学了,再者说,html也挺重要的,学一学也不算浪费时间。 软…

【机器学习】 - 作业5: 基于Kmeans算法的AAAI会议论文聚类分析

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

C++ -- 存储类型说明

存储类型说明 提前说明: 存储持续性 : C使用三种不同的方案来存储诗句(区别:数据保留在内存中的时间) 自动存储持续性:在函数定义中声明的变量(包含函数参数)的存储持续性是自动的…

[Nacos] Nacos Client获取调用服务的提供者列表 (四)

文章目录 1.Nacos Client获取调用服务的提供者列表1.1 从Ribbon的负载均衡入手到Nacos Client获取调用服务的提高者列表1.2 getServers方法返回分析1.3 通过selectInstances方法查找Instances实例1.4 获取到要调用服务的serviceInfo Nacos Client 从Ribbon负载均衡调用服务。 …