机器学习100天(二十六):026k近邻分类算法-理论

红色石头Will 红色石头Will     2023-01-06     334

关键词:

机器学习100天,今天讲的是:K 近邻分类算法-理论。

《机器学习100天》完整目录:目录

一、什么是 K 近邻算法

K 近邻算法也叫 KNN(k-Nearest Neighbor)算法,它是一个比较成熟也是最简单的机器学习算法之一。K 近邻分类算法的思路是:如果一个样本在特征空间中与 K 个实例最为相似(即特征空间中最邻近),那么这 K 个实例中大多数属于哪个类别,则该样本也属于这个类别。

如上面这张图所示,二维平面上有两个类别:红色三角形表示类别 0,蓝色正方形表示类别 1,现在有一个绿色圆形样本,判断它属于哪一类?如果选择 k=3 的话,则在距离绿色样本最近的 3 个实例中(这个黑色圆圈所在的范围),有两个是红色三角形,一个是蓝色正方形。则算法判断该样本属于红色三角形,即类别 0。

KNN 算法在训练过程中,将所有训练样本的输入和输出标签(label)都存储起来。测试过程中,计算测试样本与每个训练样本的距离,选取与测试样本距离最近的前 k 个训练样本。然后对着 k 个训练样本的 label 进行投票,票数最多的那一类别即为测试样本的类别。KNN 算法实际上是一种识记类算法,但它也包含了以下几个缺点:

  • 训练过程需要将所有的训练样本极其输出标签存储起来,因此,空间成本很大。

机器学习100天(二十六):026k近邻分类算法-理论

机器学习100天,今天讲的是:K近邻分类算法-理论。《机器学习100天》完整目录:目录一、什么是K近邻算法K近邻算法也叫KNN(k-NearestNeighbor)算法,它是一个比较成熟也是最简单的机器学习算法之一。K近邻分类算法的思路是:如果... 查看详情

机器学习100天(二十八):028k近邻分类算法-python实现(代码片段)

机器学习100天,今天讲的是:K近邻分类算法-Python实现。《机器学习100天》完整目录:目录一、导入数据集我们打开spyder,新建一个knn.py脚本。首先导入标准库,然后导入数据集iris_data.csv文件。数据集下载地址:iris_data.csv,提... 查看详情

机器学习100天(二十八):028k近邻分类算法-python实现(代码片段)

机器学习100天,今天讲的是:K近邻分类算法-Python实现。《机器学习100天》完整目录:目录一、导入数据集我们打开spyder,新建一个knn.py脚本。首先导入标准库,然后导入数据集iris_data.csv文件。数据集下载地址:iris_data.csv,提... 查看详情

机器学习100天(二十八):028k近邻分类算法-python实现(代码片段)

机器学习100天,今天讲的是:K近邻分类算法-Python实现。《机器学习100天》完整目录:目录一、导入数据集我们打开spyder,新建一个knn.py脚本。首先导入标准库,然后导入数据集iris_data.csv文件。数据集下载地址:iris_data.csv,提... 查看详情

机器学习100天(三十一):031k近邻回归算法

机器学习100天,今天讲的是:K近邻回归算法!《机器学习100天》完整目录:目录一、理论介绍我们之前讲了K近邻分类算法,用来处理分类问题。其实K近邻也可以用来处理回归问题。如左图所示,K近邻分类算法的思路是选取与... 查看详情

机器学习100天(三十一):031k近邻回归算法

机器学习100天,今天讲的是:K近邻回归算法!《机器学习100天》完整目录:目录一、理论介绍我们之前讲了K近邻分类算法,用来处理分类问题。其实K近邻也可以用来处理回归问题。如左图所示,K近邻分类算法的思路是选取与... 查看详情

机器学习100天(三十):030k近邻分类算法-k值的选择(代码片段)

机器学习100天,今天讲的是:K近邻分类算法-K值的选择。《机器学习100天》完整目录:目录上一节我们讲了K折交叉验证的理论,下面我们将K折交叉验证算法应用到K近邻分类算法中,用来选择最合适的超参数K值。数据集iris_data.c... 查看详情

机器学习100天(三十):030k近邻分类算法-k值的选择(代码片段)

机器学习100天,今天讲的是:K近邻分类算法-K值的选择。《机器学习100天》完整目录:目录上一节我们讲了K折交叉验证的理论,下面我们将K折交叉验证算法应用到K近邻分类算法中,用来选择最合适的超参数K值。数据集iris_data.c... 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

机器学习100天(二十二):022分类模型评价指标-python实现(代码片段)

机器学习100天!今天讲的是:分类模型评价指标-Python实现!《机器学习100天》完整目录:目录打开spyder,首先,导入标准库。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.metricsimportaccuracy_scorefromsklearn.metricsimportprecision_scorefromsklear 查看详情

机器学习100天(二十二):022分类模型评价指标-python实现(代码片段)

机器学习100天!今天讲的是:分类模型评价指标-Python实现!《机器学习100天》完整目录:目录打开spyder,首先,导入标准库。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.metricsimportaccuracy_scorefromsklearn.metricsimportprecision_scorefromsklear 查看详情

机器学习100天(二十):020分类模型评价指标-pr曲线

机器学习100天!今天讲的是:分类模型评价指标-PR曲线!《机器学习100天》完整目录:目录上一节我们已经了解了混淆矩阵的概念,并掌握了精确率、召回率的计算公式,在这里。现在我们来学习PR曲线的... 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

机器学习sklearn(69):算法实例(二十六)分类(十三)svmsklearn.svm.svc附录

1SVC的参数列表    2SVC的属性列表  3SVC的接口列表    查看详情

机器学习100天(二十一):021分类模型评价指标-roc曲线和auc

机器学习100天!今天讲的是:分类模型评价指标-ROC曲线和AUC《机器学习100天》完整目录:目录首先基于混淆矩阵,介绍两个新的概念:真正例率(TPR)和假正例率(FPR)。真正例率是预测为正且实际为正的样本的占所有正例样... 查看详情

机器学习:k-近邻分类

...展示出来。    K-近邻算法属于分类的一种,由之前机器学习简介中所介绍的,分类是需要一些样本数据来供算法进行学习,因此K-近邻分类算法也需要一些训练数据集。  首先我说一下K-近邻算法的思路:从字面上上看,... 查看详情

机器学习100天(十六):016逻辑回归损失函数

机器学习100天,今天讲的是:逻辑回归损失函数。一、如何找到最佳分类直线讲完了逻辑回归基本原理之后,我们再来思考一个非常关键的问题:就是如何找到最佳的分类直线呢?如图中所示,如何判断这三条直线哪个更好?线... 查看详情