a*算法的优缺点_K-近邻算法以及案例
什么是K-近邻算法(KNN)
根据邻居判断类型。如果一个样本在特征空间中有K个最相似(距离相近)的样本大多数属于一个类别,则该样品也属于这个类别。
如何求距离呢?非常简单,如图。
a1,a2,a3代表样本a的特征值 b1,b2,b3代表b的样本值,根据公式可以计算出a和b两个点的距离,各个特征值越相近,则距离越近。
K-近邻算法需要做标准化。
k-近邻算法的API(算法流程,无需考虑详细数据)
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_splitimport pandas as pddata = pd.read_csv("路径")# 缩小数据范围
# data.query() 相当于sql语句,写条件,进行筛选
data = data.query("x > 1.0 & x < 1.25")
# 处理时间的数据 pd.to_datetime
time_value = pd.to_datetime(data['time'], unit='s')
# 把日期格式转换为字典数据
time = pd.DatetimeIndex(time_value)
# 构造一些特征,
data['day'] = time.day
data['hour'] = time.hour
data['weekday'] = time.weekday
# sklearn 1表示列
data = data.drop(['time'], axis=1)
# 把签到数量少于n的目标位置删除
place_count = data.groupby('place_id').count()
# reset_index() 把place_id当做一个属性,以便获取到
tf = place_count[place_count.row_id > 3].reset_index()# 判断是否存在包含关系 ,果果数据中的 place_id 不在 tf.place_id 中,被过滤
data = data[data['place_id'].isin(tf.place_id)]
# 去处数据中的特征值和目标值
y = data['place_id']
x = data.drop(['place_id'], axis=1)
# 进行训练值和特征值切分
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)# 特征工程,标准化
std = StandardScaler()
# 对测试集和训练集进行标准化
x_train = std.fit_transform(x_train)
# 因为前面已经fit一次了, fit会计算平均值和标准差,不用再计算一次,直接transform
x_test = std.transform(x_test)
# 进行算法流程
knn = KNeighborsClassifier(n_neighbors=5)
# fit ,predict,score
fit = knn.fit(x_train, y_train)
# 得出预测结果
y_predict = fit.predict(x_test)
# 评估预测结果,得出准确率
knn.score(x_test, y_test)
K-近邻算法优缺点
优点:
- 简单,易于理解,易于实现,无需估计参数(超参数),无需训练。
缺点:
- K值取值 , K值取很小容易受异常点影响 , K取值很大 , 容易受数量波动影响。
- 性能问题
a*算法的优缺点_K-近邻算法以及案例相关推荐
- k近邻算法matlab实现_k近邻算法
k 近邻法 (k-NN) 是一种基于实例的学习方法,无法转化为对参数空间的搜索问题(参数最优化 问题).它的特点是对特征空间进行搜索.除了k近邻法,本章还对以下几个问题进行较深入的讨 论: 切比雪夫距 ...
- 算法的优缺点_机器学习算法优缺点 amp; 如何选择
(点击上方公众号,可快速关注) 转自: 算法与数学之美 主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以 ...
- 机器学习算法系列之K近邻算法
本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...
- java实现k 近邻算法_K近邻算法哪家强?KDTree、Annoy、HNSW原理和使用方法介绍
1.什么是K近邻算法 K近邻算法(KNN)是一种常用的分类和回归方法,它的基本思想是从训练集中寻找和输入样本最相似的k个样本,如果这k个样本中的大多数属于某一个类别,则输入的样本也属于这个类别. 关于 ...
- yolo算法的优缺点分析_YOLO算法详细解析(一)
目标检测和目标分类 图像识别算法是计算机视觉的基础算法,例如VGG,GoogLeNet,ResNet等,这类算法主要是判断图片中目标的种类. 目标检测算法和图像识别算法类似,但是目标检测算法不仅要识别 ...
- knn算法python理解与预测_K近邻算法用作回归的使用介绍(使用Python代码)
介绍 在我遇到的所有机器学习算法中,KNN是最容易上手的.尽管它很简单,但事实上它其实在某些任务中非常有效(正如你将在本文中看到的那样). 甚至它可以做的更好?它可以用于分类和回归问题!然而,它其实更 ...
- yolo算法的优缺点分析_yolo算法介绍
yolo算法介绍 (2020-06-06 16:49:28) 把Yolo模型搞清楚后不得不再次为人类的智慧感慨,一个巧妙的模型. 要想理解Yolo我们先要搞清楚Yolo到底要解决一个什么问题,解决这个 ...
- 机器学习:k近邻算法(KNN)介绍
k近邻算法是一种最简单最经典的机器学习算法之一.该算法的原理为:当对测试样本进行分类时,首先通过扫描训练样本集,找到与该测试样本最相似的k个训练样本,根据这个样本的类别进行投票确定测试样本的类别.也可 ...
- etc的常见算法_几个常用算法的适应场景及其优缺点(非常好)
本文主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验. ...
最新文章
- 深度学习笔记七:循环神经网络RNN(基本理论)
- Ubuntu在终端执行命令时出现的错误
- 自己身份信息泄漏了怎么办,别怕,带你了解身份管理与访问控制
- PyCaret:又一个神仙ML库
- 阅读react-redux源码(四) - connectAdvanced、wrapWithConnect、ConnectFunction和checkForUpdates
- Nginx的HTTP负载平衡
- Redis数据安全与性能保障——redis读书笔记4
- cacti配置流量汇总
- rust自我解脱_自我解脱
- [学习笔记]后缀平衡树
- Xshell 、PuTTY 复制文件到Linux
- 15个最好的Bootstrap设计工具推荐
- 虚幻引擎2D游戏开发教程系列
- 数据结构实验:数制转换
- 层次分析法(AHP)——MATLAB在数学建模中的应用(第2版)
- java jsp ssm210KTV点歌系统毕设成品源码项目介绍
- 提供风声无组件上传类V2.11下载 解决图片尺寸读取问题
- laser_filters源码整体分析
- 性能课程笔记(五)性能分析思路[转载高楼]
- 小学计算机教学的趣味性,浅谈小学信息技术课堂教学趣味性方法
热门文章
- c# 相对路径的一些文献
- Apache在windows的设置
- PPC(Pocket PC)中显示二进制数组(byte[])类型的图片
- codeUp 2143: 迷瘴 浮点计算|贪心
- android studio 无法输入中文,Android Studio 升级到3.0后输入法中文状态下无法选词的终极解决方案...
- mysql 分页算法_MySQL高效的分页算法
- html代码 打开本地文件,打开本地HTML文件
- mysql 预留一个自定义字段_MySQL 按指定字段自定义列表排序 | DevOps
- python日志输出 超量 停止_linux 内存分配参数导致的 buffer_pool 分配不出来的问题排查...
- Spring JdbcTemplate实例