k近邻算法.zip

  • 甜九
    了解作者
  • Python
    开发工具
  • 2KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-11-15 17:17
    上传日期
我自己在网上找的一些关于knn算法的代码。大家可以看一下,可能存在一些问题。请大家指出改正
k近邻算法.zip
  • k近邻算法
  • __init__.py
    0B
  • scantter.py
    478B
  • knn2.py
    2.1KB
  • matplotlib.py
    638B
内容介绍
import numpy as np import matplotlib.pyplot as plt # 初始化模拟数据 # X_train 为样本点 X_train = np.array([[2, 1],[3, 2],[4, 2],[1, 3],[1.5, 4],[1.7, 3],[2.6, 5],[3.4, 3], [3, 6],[1, 7],[4, 5],[1.2, 6],[1.8, 7],[2.2, 8],[3.7, 7],[4.8, 5]]) # y_train 为样本点标记 y_train = np.array([0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]) # X_test 为测试样本,也就是要判断的样本 X_test = np.array([3.2, 5.4]) # k 为邻居数 k = 3 # 这里的距离公式采用欧式距离 square_ = (X_train - X_test) ** 2 square_sum = square_.sum(axis=1) ** 0.5 # 根据距离大小排序并找到 测试样本 与 所有样本k个最近的样本的序列 square_sum_sort = square_sum.argsort() small_k = square_sum_sort[:k] # K近邻用于分类则统计K个邻居分别属于哪类的个数,用于回归则计算K个邻居的y的平均值作为预测结果 # 统计距离最近的k个样本 分别属于哪一类的个数 别返回个数最多一类的序列 作为预测结果 y_test_sum = np.bincount(np.array([y_train[i] for i in small_k])).argsort() # 打印预测结果 print('predict: class {}'.format(y_test_sum[-1])) # 将数据可视化 更生动形象 # 将 class0 一类的样本点 放到 X_train_0中 X_train_0 = np.array([X_train[i, :] for i in range(len(y_train)) if y_train[i] == 0]) # 将 class1 一类的样本点 放到 X_train_1中 X_train_1 = np.array([X_train[i, :] for i in range(len(y_train)) if y_train[i] == 1]) # 绘制所有样本点 并采用不同的颜色 分别标记 class0 以及 class1 plt.scatter(X_train_0[:,0], X_train_0[:,1], c='g', marker='o', label='train_class0') plt.scatter(X_train_1[:,0], X_train_1[:,1], c='m', marker='o', label='train_class1') if y_test_sum[-1] == 0: test_class = 'g' elif y_test_sum[-1] == 1: test_class = 'm' plt.scatter(X_test[0], X_test[1], c=test_class, marker='*', s=100, label='test_class') # 连接 测试样本 与k个近邻 for i in small_k: plt.plot([X_test[0], X_train[i, :][0]], [X_test[1], X_train[i, :][1]], c='c') plt.legend(loc='best') plt.show()
评论
    相关推荐
    • KNN分类器.rar
      一、用python或matlab编写一个KNN分类器 训练集为semeion_train.csv(手写体识别) 测试集为semeion_test.csv 计算在测试集上错误率(k=1,k=3,k=5,k=10) ?
    • KNN分类.rar
      利用K-最近邻算法进行高识别率的信号特征五分类
    • KNN人脸分类.rar
      基于knn最近邻算法的人脸识别,使用python进行编程实现
    • KNN_Matlab.rar
      matlab代码,机器学习中,基于k最邻近方法进行分类
    • KNN结合项目.zip
      matlab代码进行KNN分析,结合项目进行的大气指标
    • knn分类算法.rar
      k近邻算法实现数据分类,使用visual2017实现
    • knn.py.zip
      kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来...
    • KNN_MNIST.rar
      KNN MNIST手写数字识别,包括代码和数据集。其中利用KNN算法做手写数字识别,数据集用到了MNIST。KNN(最近邻算法),根据距离最近的K个标签中的多数值确定该数据的标签。
    • 小白入门KNN分类器.zip
      小白初入机器学习阶段解决最简单的KNN分类器代码问题。
    • 1.KNN分类.rar
      代码均不调用机器学习库,只使用python自带库和numpy,便于学习和理解K近邻算法原理,打开使用jupyter_notebook