K临近算法实现

K临近算法实现

最近开始学习机器学习算法,这是我写的第一篇博客,主要为了记录自己每天学习了什么,课程内容来自于慕课网。

首先导入我们需要用到的numpy 和 matplotlib函数库

import numpy as np
import matplotlib.pyplot as plt

训练数据集

raw_data_X=[[3.393533211,2.331273381],
           [3.110073483,1.781539638],
           [1.343808831,3.368360954],
           [3.582294042,4.679179110],
           [2.280362439,2.866990263],
           [7.423436942,4.696522875],
           [5.745051997,3.533989803],
           [9.172168622,2.511101045],
           [7.792783481,3.424088941],
           [7.939820817,0.791637231]
           ]
raw_data_y=[0,0,0,0,0,1,1,1,1,1]
x_train=np.array(raw_data_X)
x_train
y_train=np.array(raw_data_y)
y_train

数据可视化,通过散点图来标记不同类别

plt.scatter(x_train[y_train==0,0],x_train[y_train==0,1],color='g')
plt.scatter(x_train[y_train==1,0],x_train[y_train==1,1],color='r')
plt.show()

shuj

添加测试点,用蓝色标记进行可视化

x=np.array([8.093607318,3.365731514])
plt.scatter(x_train[y_train==0,0],x_train[y_train==0,1],color='g')
plt.scatter(x_train[y_train==1,0],x_train[y_train==1,1],color='r')
plt.scatter(x[0],x[1],color='b')
plt.show()

在这里插入图片描述

KNN过程


//距离
from math import sqrt
distances=[sqrt(np.sum((x_train-x)**2)) for x_train in x_train]
distances
//最近距离
nearest=np.argsort(distances)
nearest
k=6
//最近6个点的y值
topk_y=[y_train[i] for i in nearest[:k]]
topk_y
//计算相同y值个数
from collections import Counter
votes=Counter(topk_y)
//选出个数最多的y值,即为预测值
predict=votes.most_common(1)[0][0]
predict

一篇自己的读书笔记,如有错误欢迎批评指教,如有侵权删。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K最近邻算法(K-nearest neighbors algorithm)是一种常用的机器学习算法,主要用于分类和回归问题。这种算法的基本思想是:对于一个给定的测试样本,找出与该样本最接近的K个训练样本,然后根据这K个样本的标签来判断该测试样本的分类。 要实现左右运动想象分类的K最近邻算法的Matlab代码,可以按照以下步骤进行: 1. 准备数据集:收集一组包含左右运动想象数据的样本集,每个样本应包括特征和标签。特征是用于描述样本的属性,如脑电波信号;标签表示样本的类别,如左或右。 2. 数据预处理:对于特征数据,可以进行一些预处理步骤,如归一化或标准化,以提高算法的性能。 3. 分割数据:将数据集划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。 4. 训练模型:使用训练集中的样本来训练K最近邻分类器。可以使用Matlab的机器学习相关函数来实现,如fitcknn函数。 5. 预测分类:使用训练好的K最近邻分类器对测试集中的样本进行分类预测。可以使用Matlab的predict函数来实现。 6. 评估性能:根据预测结果,通过计算准确率、召回率、F1分数等指标来评估分类器的性能。 总结来说,K最近邻算法实现左右运动想象分类的Matlab代码包括数据准备、预处理、数据分割、模型训练、分类预测和性能评估等步骤。这些步骤可以使用Matlab的机器学习相关函数和算法来完成。具体实现的代码可以根据具体的数据集和需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值