作者|Rashida Nasrin Sucky 编译|VK 来源|Towards Data Science
KNN分类器是一种非常流行的监督机器学习技术。本文将用一个例子来解释KNN分类器
什么是监督学习?
以下是百度百科:
监督学习是指:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。
监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为向量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。
举个例子会更清楚
这是一个数据集,包含一些水果样本的质量、宽度、高度和颜色分数。
目的是训练一个模型,如果我们在模型中输入质量、宽度、高度和颜色分数,模型就可以让我们知道水果的名称。例如,如果我们输入一个水果的质量、宽度、高度和颜色分数分别设置为175、7.3、7.2、0.61,模型应该将水果的名称输出为苹果。
在这里,质量、宽度、高度和颜色分数是输入特征(X)。水果的名称是输出变量或标签(y)。
这个例子对你来说可能听起来很傻。但这是在监督机器学习模型中使用的机制。
稍后我将用一个真实的数据集展示一个实际的例子。
KNN分类器
KNN分类器是基于记忆的机器学习模型的一个例子。
这意味着这个模型会记住训练示例,然后他们用它来分类以前从未见过的对象。
KNN分类器的k是为了预测一个新的测试实例而检索的训练样本数。
KNN分类器分三步工作:
当给它一个新的实例或实例进行分类时,它将检索之前记忆的训练样本,并从中找出最近的样本的k个数。
然后分类器查找最近的例子的k个数字的标签(上面例子中水果的名称)。
最后,该模型结合这些标签进行预测。通常,它会预测标签最多的那个。例如,如果我们选择k为5,在最近的5个例子中,如果我们有3个橘子和2个苹果,那么新实例的预测值将是橘子。
资料准备
在开始之前,我建议你检查计算机中是否有以下可用资源:
- Numpy 库
- Pandas 库
- Matplotlib 库
- Scikit-Learn 库
- Jupyter Notebook
如果你没有安装Jupyter Notebook,你可以选择其他笔记本。我建议你可以使用谷歌公司的Colab。按此链接开始:https://colab.research.google.com/notebooks/intro.ipynb#recent=true
谷歌Colab Notebook不是私有的。所以,不要在那里做任何专业或敏感的工作。但对练习来说很棒。因为很多常用的软件包已经安装在里面了。
我建议下载数据集。我在页面底部提供了链接。你可以自己运行每一行代码。
首先,导入必要的库:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
在本教程中,我将使用来自Kaggle的泰坦尼克号数据集。我已将此数据集上传到与我的笔记本相同的文件夹中。
下面是如何使用pandas导入数据集。