23.k-近邻算法以及案例预测入住位置

24.K-近邻算法案例

分类算法-k近邻算法(KNN)

定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

sklearn k-近邻算法API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto')

  • n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数
  • algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选用于计算最近邻居的算法:‘ball_tree’将会使用 BallTree,‘kd_tree’将使用 KDTree。‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。 (不同实现方式影响效率)

k近邻算法实例-预测入住位置

from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
def knncls():#读取收据data = pd.read_csv("/Users/zhucan/Downloads/facebook-v-predicting-check-ins/train.csv")#处理数据data.query("x > 1.0 & x < 1.25 & y > 2.5 & y < 2.75")time_value = pd.to_datetime(data["time"],unit="s")#把日期格式转换成字典格式time_value = pd.DatetimeIndex(time_value)#构造一些特征data["day"] = time_value.daydata["hour"] = time_value.hourdata["weekday"] = time_value.weekdaydata = data.drop(["time"],axis = 1)#把签到数量少于n个目标位置删除place_count = data.groupby('place_id').count()tf = place_count[place_count.row_id > 3].reset_index()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)x_test = std.transform(x_test)#算法流程knn = KNeighborsClassifier(n_neighbors=5)knn.fit(x_train,y_train)y_predict = knn.predict(x_test)print("预测的目标签到位置为:", y_predict)print("预测的准确率",knn.score(x_test,y_test))knncls()

25.k-近邻算法总结

k值取多大?有什么影响?

  • k值取很小:容易受异常点影响
  • k值取很大:容易受最近数据太多导致比例变化

k-近邻算法优缺点

  • 优点: 简单,易于理解,易于实现,无需估计参数,无需训练
  • 缺点: 懒惰算法,对测试样本分类时的计算量大,内存开销大 必须指定K值,K值选择不当则分类精度不能保证
  • 使用场景:小数据场景,几千~几万样本,具体场景具体业务去测试

机器学习算法基础——k近邻算法相关推荐

  1. 机器学习-分类之K近邻算法(KNN)原理及实战

    k近邻算法(KNN) 简介 KNN算法是数据挖掘分类技术中最简单的方法之一.它通过测量不同特征值之间的距离进行分类的.其基本思路为:如果一个样本在特征空间中的k个最近邻样本中的大多数属于某一个类别,则 ...

  2. 机器学习——聚类之k近邻算法及python使用

    聚类算法之k近邻及python使用 什么是k近邻算法 k近邻算法流程 使用sklearn进行代码实现 数据集介绍 标准化 代码实现 写在开头,套用我的老师的一句话目前所有自然学科的前沿都是在研究数学, ...

  3. k近邻算法_机器学习分类算法之k近邻算法

    本编文章将介绍机器学习入门算法-k近邻算法,将会用demo演示机器学习分类算法. 在先介绍算法时,先回顾分类和回归的区别.像文章分类识别也是这样处理的,如1代表体育,2代表科技,3代表娱乐属于分类问题 ...

  4. 01. 机器学习笔记01——K近邻算法 , CV_example

    K近邻算法(K-nearest neighbor,KNN算法) 李航博士<统计学习方法> 最近邻(k-Nearest Neighbors,KNN)算法是一种分类算法 应用场景:字符识别.文 ...

  5. 机器学习实战之K近邻算法

    k近邻算法概述 简单地说,K近邻算法采用测量不同特征值之间的距离方法进行分类. 优 点 :精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围:数值型和标称型. ...

  6. 【机器学习实战】k近邻算法实战——手写识别系统

    文章目录 手写识别系统 步骤: 准备数据:将图像转换为测试向量 测试算法:使用k-近邻算法识别手写数字 [完整代码] 手写识别系统 为了简单起见,这里构造的系统只能识别数字0到9,参见图2-6.需要识 ...

  7. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

  8. 机器学习算法系列之K近邻算法

    本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...

  9. 机器学习[k近邻算法]

    k近邻算法简称kNN算法,由Thomas等人在1967年提出[1].它基于以下思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计这些样本的类别进行投票, ...

最新文章

  1. document.all使用
  2. STL (13) 非变动型算法
  3. 23种设计模式(4)-生成器模式
  4. android studio下生成aar文件,本地调用
  5. socket 收不到16进制 数据_UDP编程-套接字(socket)
  6. 系统无法安装High Definition Audio的UAA总线驱动程序之解决方法
  7. Dubbo原理和源码解析之服务暴露
  8. Spring-boot原理(附带实现一个spring-boot-starter实例和代码下载)
  9. 【转】NSBundle的使用,注意mainBundle和Custom Bundle的区别
  10. 校园网络视频监控系统方案
  11. JS红宝书学习记录(一)
  12. 毕业设计任务书----基于Android的学生考勤管理系统设计与实现
  13. ug服务器显示无效名称,文件名后缀怎么显示,ug打开文件时显示无效的文件名-
  14. 笔记本计算机摄像头怎么打开方式,笔记本的摄像头怎么打开,手把手教你笔记本电脑摄像头如何打开...
  15. Excel报表的制作
  16. 二叉树的前中后序遍历(栈)(C++)
  17. 中国的研究生在“研究”什么
  18. 二阶系统阶跃响应实验_实验二 二阶系统阶跃响应 -
  19. 微软hackathon_如何参加编码训练营,聚会,赢得Hackathon彻底改变了我的生活
  20. 技术牛逼,就可以成为专家吗?

热门文章

  1. dubbo service注解用法_Dubbo---开源分布式服务框架(一)
  2. 按周选择的时间控件_基金定投到底是选择按周定投好还是按月定投好,两者区别是什么?...
  3. 通过文件IO控制硬件设备的方法
  4. java format 补足空格_11个简单的Java性能调优技巧
  5. EditText 编辑文本控件
  6. C++ 有符号整数和无符号整数修饰符之间的差别
  7. python h5游戏_从零开始制作H5人脸融合小游戏
  8. 深度学习核心技术精讲100篇(五十三)-机器学习中的隐私保护
  9. 增强学习(一) ----- 基本概念
  10. Numpy中的array