K近邻算法&计算距离&scikit-learn数据集获取——机器学习

一、K近邻算法

1 什么是K近邻算法(k-Nearest Neighbours KNN)

  • 简介

    • 最近邻算法是一种分类算法
    • 1968年由Cover和Hart提出,应用场景有字符识别、文本分类、图像识别等领域。
    • 该算法的思想:一个样本与数据集中的k个样本最相似,这k个样本中的大多数属于同一个类别
  • 特点
    根据邻居的位置来推断自己的位置。

  • 定义
    如果一个样本在特征空间中的k个最相似样本中的大多数属于同一个类别,则该样本也属于这个类别.

  • 案例-电影类型分析
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第1张图片

3 k近邻算法API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)

  • n_neighbors:int,可选,默认5

4 k值的选择

  • k值的考虑
  • k值过小:容易受到异常点的影响
  • k值过大:容易受到样本均衡的影响

1、选择较小的k值,就相当于用较小领域中的训练实例进行预测,“学习”近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,学习的估计误差会增大,换句话说K值减小就意味着整体模型变得复杂,容易发生过拟合

2、选择较大的K值时,与输入实例较远的训练实例与会对预测器起作用,使预测发生错误,且K值的增大就意味着整体模型变得简单

  • 近似误差和估计误差

近似误差:对现有训练集的训练误差,关注训练集,如果近似误差过小可能会出现拟合的现象,对现有训练集能够很好的预测,但是对位置的测试样本出现较大偏差的预测。模型本身不是最接近最佳模型。
估计误差:可以理解为对测试集的测试误差,关注测试集,估计误差小说明对未知数据的预测能力好,模型本身最接近最佳模型。

二、距离计算

1 闵式距离

  • 定义
    闵式距离包括欧氏距离、曼哈顿距离、切比雪夫距离等

  • 缺点:

    • 将各个变量的量纲(scale)也就是单位相同看待了
    • 未考虑各个分量的分布(期望、方差等)可能是不同的
  • 欧氏距离公式
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第2张图片

  • 曼哈顿距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第3张图片

  • 切比雪夫距离(Chebyshev Distance)
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第4张图片
  • 闵可夫斯基距离:
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第5张图片

2 标准化欧氏距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第6张图片

3 余弦距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第7张图片

4 汉明距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第8张图片

5 杰卡德距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第9张图片

6 马氏距离

K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第10张图片

三、Scikit-learn

1 Scikit-learn

  • 安装及使用
# 安装
pip3 install scikit-learn==0.19.1

# 导入
import sklearn
  • 包含的内容
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第11张图片
    K近邻算法&计算距离&scikit-learn数据集获取——机器学习_第12张图片

2 数据集

  • 小数据集的获取
from sklearn.datasets import load_iris
iris = load_iris()
print(iris)
  • 大数据集的获取

API:sklearn.datasets.fetch_20newsgroups()

你可能感兴趣的:(机器学习,机器学习)