人工智能之knn算法总结(一)

1.1K-近邻算法简介

1.定义:

就是通过你的“邻居”来判断你属于哪个类别

2.如何计算你到你的“邻居”的距离

一般时候,都是使用欧式距离

1.2k近邻算法api初步使用

1.sklearn

优势:
1.文档多,且规范
2.包含的算法多
3.实现起来比较容易

2.sklearn中包含内容

分类、聚类、回归
特征工程
模型选择、调优

3.K-近邻算法API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)

参数:

n_neighbors — 选定参考几个邻居

  • n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数

4.机器学习中实现的过程

  1. 实例化一个估计器
  2. 使用fit方法进行训练

1.3距离度量

1.欧式距离**(Euclidean Distance)**

通过距离平方值进行计算

2.曼哈顿距离(Manhattan Distance)

通过举例的绝对值进行计算

3.切比雪夫距离 (Chebyshev Distance)

维度的最大值进行计算

4.闵可夫斯基距离(Minkowski Distance)

当p=1时,就是曼哈顿距离;

当p=2时,就是欧氏距离;

当p→∞时,就是切比雪夫距离。

小结:前面四个距离公式都是把单位相同看待了,所以计算过程不是很科学

5.标准化欧氏距离 (Standardized EuclideanDistance)

在计算过程中添加了标准差,对量纲数据进行处理

6.余弦距离(Cosine Distance)

通过cos思想完成

7.汉明距离(Hamming Distance)【了解】

一个字符串到另外一个字符串需要变换几个字母,进行统计

8.杰卡德距离(Jaccard Distance)【了解】

通过交并集进行统计

9.马氏距离(Mahalanobis Distance)【了解】

通过样本分布进行统计

1.4k值选择

  • k值过小:容易受到异常点的影响 ------ 过拟合
  • k值过大:受到样本均衡的问题 ---- 欠拟合
  • 拓展:
    • 近似误差 --------- 过拟合 ----- 在训练集上表现好,测试集表现不好
    • 估计误差好才是真的好

1.5kd树

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.数据返回值介绍

load和fetch返回的数据类型datasets.base.Bunch(字典格式)

  • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
  • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
  • DESCR:数据描述
  • feature_names:特征名,新闻数据,手写数字、回归数据集没有
  • target_names:标签名

3.数据可视化

import seaborn
seaborn.lmplot()
  • 参数
  • x,y – 具体x轴,y轴数据索引值
  • data – 具体数据
  • hue — 目标值是什么
  • fit_reg – 是否进行线性拟合

4.数据集的划分

api:
  1. sklearn.model_selection.train_text_
  2. split(arrays,*options)
    1. 参数:
    2. x——特征值
    3. y——目标值
    4. test_size——测试集大小
    5. ramdom_state——随机数种子
    6. 返回值: x_train,x_test,y_train,y_test (顺序是固定的)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值