无涯教程-KNN算法 - 寻找最近邻居

这篇具有很好参考价值的文章主要介绍了无涯教程-KNN算法 - 寻找最近邻居。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

K最近邻(KNN)算法是一种监督的ML算法,可用于分类以及回归预测问题,但是,它主要用于行业中的分类预测问题。以下两个属性将很好地定义KNN-

  • 惰性学习算法    -  KNN是一种惰性学习算法,因为它没有专门的训练阶段,并且在分类时将所有数据用于训练。

  • 非参数学习算法 -  KNN也是一种非参数学习算法,因为它不假设基础数据。

KNN算法

K最近邻(KNN)算法使用"特征相似度"来预测新数据点的值,这进一步意味着,将根据新数据点与训练集中的点的匹配程度为该新数据点分配一个值。无涯教程可以通过以下步骤了解其工作方式-

第1步   -  要实现任何算法,都需要数据集,因此,在KNN的第一步中,必须加载训练以及测试数据。

第2步   -  接下来,需要选择K的值,即最近的数据点, K可以是任何整数。

第3步   -  对于测试数据中的每个点,请执行以下操作-

  •     3.1 - 借助以下任意一种方法来计算测试数据与每行训练数据之间的距离:欧几里得距离,曼哈顿距离,距离计算最常用的方法是欧几里得。

  •     3.2 - 现在,基于距离值,将它们按升序排序。

  •     3.3 - 接下来,它将从排序后的数组中选择前K行。

  •     3.4 - 现在,它将基于这些行中最常见的类别为测试点分配一个类别。

第4步    -  结束

以下是了解K的概念和KNN算法的工作的示例-

假设有一个可以绘制如下的数据集-

现在,无涯教程需要将带有黑点的新数据点(在点60,60处)分类为蓝色或红色类。假设K=3,即它将找到三个最近的数据点。下图显示-

可以在上图中看到带有黑点的数据点的三个最近邻居。在这三个中,有两个属于红色等级,因此黑点也将被分配为红色等级。

代码实现

众所周知,K最近邻算法(KNN)可用于分类和回归。以下是Python中使用KNN作为分类器和回归器的配方-

KNN分类器

首先,从导入必要的python包开始-

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

接下来,如下所示从其网络链接下载iris数据集:

path="https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

接下来,需要为数据集分配列名称,如下所示:

headernames=[sepal-length, sepal-width, petal-length, petal-width, Class]

现在,需要将数据集读取为pandas数据框,如下所示:

dataset=pd.read_csv(path, names=headernames)
dataset.head()
sepal-length sepal-width petal-length petal-width Class
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa

数据预处理将在以下脚本行的帮助下完成。

X=dataset.iloc[:, :-1].values
y=dataset.iloc[:, 4].values

接下来,将数据分为训练和测试拆分。以下代码将数据集拆分为60%的训练数据和40%的测试数据-

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.40)

接下来,将按如下方式进行数据缩放-

from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
scaler.fit(X_train)
X_train=scaler.transform(X_train)
X_test=scaler.transform(X_test)

接下来,借助sklearn的KNeighborsClassifier类训练模型,如下所示-

from sklearn.neighbors import KNeighborsClassifier
classifier=KNeighborsClassifier(n_neighbors=8)
classifier.fit(X_train, y_train)

最后,需要进行预测。可以在以下脚本的帮助下完成-

y_pred=classifier.predict(X_test)

接下来,按如下所示打印输出-

from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
result = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(result)
result1 = classification_report(y_test, y_pred)
print("Classification Report:",)
print (result1)
result2 = accuracy_score(y_test,y_pred)
print("Accuracy:",result2)
Confusion Matrix:
[[21 0 0]
[ 0 16 0]
[ 0 7 16]]
Classification Report:
                  precision   recall   f1-score   support
    Iris-setosa        1.00     1.00       1.00        21
Iris-versicolor        0.70     1.00       0.82        16
 Iris-virginica        1.00     0.70       0.82        23
      micro avg        0.88     0.88       0.88        60
      macro avg        0.90     0.90       0.88        60
   weighted avg        0.92     0.88       0.88        60

Accuracy: 0.8833333333333333

KNN回归器

首先,从导入必要的Python包开始-

import numpy as np
import pandas as pd

接下来,如下所示从其网络链接下载iris数据集:

path="https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

接下来,需要为数据集分配列名称,如下所示:

headernames=[sepal-length, sepal-width, petal-length, petal-width, Class]

现在,需要将数据集读取为pandas数据框,如下所示:

data = pd.read_csv(url, names = headernames)
array = data.values
X = array[:,:2]
Y = array[:,2]
data.shape
output:(150, 5)

接下来,从 sklearn 导入 KNeighborsRegressor 以适合模型-

from sklearn.neighbors import KNeighborsRegressor
knnr=KNeighborsRegressor(n_neighbors=10)
knnr.fit(X, y)

最后,无涯教程可以找到MSE,如下所示:

print ("The MSE is:",format(np.power(y-knnr.predict(X),2).mean()))
The MSE is: 0.12226666666666669

KNN算法 - 寻找最近邻居 - 无涯教程网无涯教程网提供K最近邻(KNN)算法是一种监督的ML算法,可用于分类以及回归预测问题,但是,它主要用于...https://www.learnfk.com/python-machine-learning/machine-learning-with-python-knn-algorithm-finding-nearest-neighbors.html文章来源地址https://www.toymoban.com/news/detail-678478.html

到了这里,关于无涯教程-KNN算法 - 寻找最近邻居的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 无涯教程-分类算法 - Python实现函数

    为了在Python中实现SVM,无涯教程将从标准库导入开始,如下所示- 接下来,从sklearn.dataset.sample_generator创建具有线性可分离数据的样本数据集,以使用SVM进行分类- 以下是生成具有100个样本和2个聚类的样本数据集后的输出- 知道SVM支持判别分类。它通过在二维的情况下简单地找

    2024年02月10日
    浏览(33)
  • 无涯教程-聚类算法 - K-Means

    K-均值聚类算法计算质心并进行迭代,直到找到最佳质心为止,它假定群集的数目是已知的,它也称为扁平聚类算法。通过算法从数据中识别出的簇数以K均值中的\\\" K\\\"表示。 在该算法中,将数据点分配给群集,以使数据点和质心之间的平方距离之和最小。应当理解,簇内的较

    2024年02月10日
    浏览(48)
  • 无涯教程-分类算法 - 多项式逻辑回归模型函数

    Logistic逻辑回归的另一种有用形式是多项式Lo​​gistic回归,其中目标或因变量可以具有3种或更多可能的 unordered 类型,即没有定量意义的类型。 现在,无涯教程将在Python中实现上述多项式逻辑回归的概念。为此,使用来自sklearn的名为 digit 的数据集。 首先,需要导入必要的

    2024年02月10日
    浏览(40)
  • OpenCv案例(十二):基于OpenCVSharp学习之模板匹配寻找距离中心位置最近的目标

    1:需求:在原图中,有多个特征点和模板图像一模一样,因此,寻找原图中中心位置最近的特征点位(模板匹配详解);原图如下所示: 模板图像:                                                                          2:现要求匹配找

    2024年01月24日
    浏览(58)
  • 分类算法(KNN算法)

    KNN(k-Nearest Neighbors)算法是一种常见的分类和回归算法。它的核心思想是通过计算待分类对象和训练集中已分类对象之间的距离来确定待分类对象所属的类别。其中,k表示选取距离待分类对象最近的k个训练样本,将这些样本的类别作为待分类对象的类别进行判定。 在分类问

    2024年02月07日
    浏览(34)
  • 分类算法系列②:KNN算法

    目录 KNN算法 1、简介 2、原理分析 数学原理 相关公式及其过程分析 距离度量 k值选择 分类决策规则 3、API 4、⭐案例实践 4.1、分析 4.2、代码 5、K-近邻算法总结 🍃作者介绍:准大三网络工程专业在读,努力学习Java,涉猎深度学习,积极输出优质文章 ⭐分类算法系列①:初识

    2024年02月10日
    浏览(31)
  • 四、分类算法 - KNN算法(K-近邻算法)

    目录 1、K-近邻算法 1.1 K-近邻算法原理 1.2 K - 近邻算法API 1.3 案例1:鸢尾花种类预测 1.3.1 数据集介绍 1.3.2 步骤 1.4 KNN 算法总结 sklearn转换器和估算器 KNN算法 模型选择和调优 朴素贝叶斯算法 决策树 随机森林 1.3.1 数据集介绍 1.3.2 步骤 获取数据 数据集划分 特征工程   - 标准

    2024年02月22日
    浏览(50)
  • 深度学习—KNN算法

    KNN算法,即k近邻法(k-nearest neighbor,k-NN)是一种基本的分类和回归方法,是监督学习方法里的一种常用方法。k近邻算法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例类别,通过多数表决等方式进行预测。 KNN的原理就是

    2024年02月15日
    浏览(9)
  • k-邻近算法(kNN)

    目录 k-近邻算法概述 k-近邻算法的一般流程 kNN算法伪代码 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型 (1)收集数据 (2)准备数据 (3)分析数据 (4)训练算法(不需要) (5)测试算法 (6)使用

    2024年02月22日
    浏览(35)
  • 机器学习——KNN算法实例

    目录 1.项目背景 2.流程步骤  3.代码部分 3.1导入可能需要用的包  3.2准备数据:从文本文件中解析数据  3.3分析数据:用Matplotlib创建散点图  3.4准备数据:数据归一化 3.5 测试算法:作为完整程序验证分类器  【关于K值的选择】 3.6使用算法:构建完整可用系统 4.总结    关

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包