K最近邻kNN-学习笔记
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 24 09:34:32 2019 1. 翼尾花数据
2. 用 KNeighborsClassifier """ # -*- coding:utf-8 -*-
import numpy as np
from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris
iris = load_iris() #载入数据
features, labels = np.array(iris.data), np.array(pd.Categorical.from_codes(iris.target, iris.target_names).tolist()) #多个连续自变量 和 一个离散因变量
feature_names = iris.feature_names from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test= train_test_split(features,labels,test_size =0.33,shuffle=True,random_state=42)
#shuffle随机 random_state设定随机种子 test_size测试数据占比33% def accuracy(test_labels, pred_lables):
correct = np.sum(test_labels == pred_lables)
n = len(test_labels)
return float(correct) / n knn = KNeighborsClassifier(n_neighbors=5)
y_test_pre = knn.fit(x_train, y_train).predict(x_test) print(accuracy(y_test_pre, y_test))
# 0.98
改进点:
1. 根据最近的K个值 的距离对最终结果,进行加权。
2. 通过先验知识,对训练数据进行筛选,缩小训练样本,提高样本质量,有利于提高计算速度。
3. 变量尽量少,这样可以提供速度。
优点:
1. 算法原理非常简单: 用 欧式距离最近(或曼哈顿距离)的K个样本点的分类中的众数,作为预测分类。
2. 便于并行计算。
3. 可以做 分类、也可以连续变量拟合预测
缺点:
1. 自变量必须是连续性,并且做好了归一化等处理,方便测量距离。
2. 对于连续性因变量,只能做插值预测,不适合做外推预测。
3. 分类新实例开销大,每次对一个测试样本,需要用到几乎全部的训练样本数据,分别计算距离
4. 会考虑所有属性/自变量。导致计算量大。
kNN(K-Nearest Neighbor)最邻近规则分类
K最近邻kNN-学习笔记的更多相关文章
- kNN算法:K最近邻(kNN,k-NearestNeighbor)分类算法
一.KNN算法概述 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它 ...
- K最近邻(KNN,k-Nearest Neighbor)准确理解
K最近邻(KNN,k-Nearest Neighbor)准确理解 用了之后,发现我用的都是1NN,所以查阅了一下相关文献,才对KNN理解正确了,真是丢人了. 下图中,绿色圆要被决定赋予哪个类,是红色三 ...
- KNN学习笔记
简单地说,KNN算法就是通过测量不同特征值之间的距离来对特征进行分类的一种算法. 优点:精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围:数值型和标称型. 工 ...
- K-means、KNN学习笔记
1.K-means:聚类算法,无监督 输入:k, data[n]; (1) 选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1]; (2) 对于data[0]….dat ...
- bzoj 1598: [Usaco2008 Mar]牛跑步 [k短路 A*] [学习笔记]
1598: [Usaco2008 Mar]牛跑步 题意:k短路 ~~貌似A*的题目除了x数码就是k短路~~ \[ f(x) = g(x) + h(x) \] \(g(x)\)为到达当前状态实际代价,\ ...
- 机器学习2—K近邻算法学习笔记
Python3.6.3下修改代码中def classify0(inX,dataSet,labels,k)函数的classCount.iteritems()为classCount.items(),另外p ...
- 转载: scikit-learn学习之K最近邻算法(KNN)
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...
- 学习笔记之k-nearest neighbors algorithm (k-NN)
k-nearest neighbors algorithm - Wikipedia https://en.wikipedia.org/wiki/K-nearest_neighbors_algorith ...
- opencv2.4.13+python2.7学习笔记--使用 knn对手写数字OCR
阅读对象:熟悉knn.了解opencv和python. 1.knn理论介绍:算法学习笔记:knn理论介绍 2. opencv中knn函数 路径:opencv\sources\modules\ml\in ...
随机推荐
- 硬盘性能 & 文件碎片的一些思考
昨天将一台机器上的数据转移(备份)到另一台机器上,花了差不多一个晚上,传输了100G左右的数据. 感觉数据源机器的硬盘越来越不行了,读写性能下降的很历害. 这些年来写软件的时候很少去考虑硬盘的读写性能 ...
- 结尾0的个数(问题来源PythonTip)
给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数.(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大). 例如: L=[2,8,3,50], 则输出:2 利用2 和 5 思路: 算各 ...
- npm脚本
在package.json的script里面我们可以写很多npm脚本,下面我来总结一下一些日常遇到的知识点: 1.npm_lifecycle_event npm 提供一个npm_lifecycle_e ...
- CF786B Legacy && 线段树优化连边
线段树优化连边 要求点 \(x\) 向区间 \([L, R]\) 连边, 一次的复杂度上限为 \(O(n)\) 然后弄成线段树的结构 先父子连边边权为 \(0\) 这样连边就只需要连父亲就可以等效于连 ...
- 远程升级云服务器系统 CentOS 6.x 至 CentOS 7.x
由于docker-ce不再支持centos6,所以觉得吧系统升级为centos7,以下是踩坑的过程 1.添加源 /etc/yum.repos.d/upgrade.repo [upgrade] name ...
- Premiere导入视频之后音频轨没有内容
我用手机录的视频,在导入premiere新建序列之后呢并没有声音啊,音频轨没有内容.去贴吧里面问啊什么的都不靠谱,热心回答的人也不多.想学到东西,在这个年代如果你不愿意掏钱的话就只能靠一个办法:搜索. ...
- myeclipse设置,提高开发效率
全局搜索,打开一个文件,却把另外一个给关掉. 解决办法: 在myeclipse中window-preferences-general-search找到第一行的一个选项reuse editors to ...
- 超哥带你学GIT
git入门 git安装 git基础 git分支 github与gitlab与git三个基佬的故事 gitlab与pycharm结合 github使用 git超清技能图 学习git站点: git官网 廖 ...
- Java Web 自定义标签
1. 自定义标签 由于在JSP页面中直接嵌入Java代码会导致页面开起来非常混乱,不方便和美工等配合工作,为此,JSP提供了自定义标签技术,可以代替直接嵌入Java代码的方式提供动态逻辑,但自定义 ...
- Hibernate非主键一对多关联。
Unit表 id,code User表 id,ucode ...@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="ucode" ...