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 ...
随机推荐
- 在kubernetes中运行单节点有状态MySQL应用
Deploy MySQL https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-applicati ...
- 20190312 Windows安装Kafka
1. 下载 使用版本2.1.1 官网下载地址 2. 安装 2.1. 前提 已安装ZooKeeper,可参考 20190311 Windows安装ZooKeeper 进行安装ZooKeeper 2.2. ...
- 设计模式---单一职责模式之桥模式(Bridge)
一:概念 Bridge模式又叫做桥接模式,其实基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任他的主要特点是吧抽象与行为实现分离开来,从而可以保持各部分的独立性以及一对 ...
- python---session(tornado中使用)缓存
session.py插件 # coding:utf8 # __author: Administrator # date: // # /usr/bin/env python import config ...
- MySQL记录-Lost Connect MySQL Server during query解决方案
vim /etc/my.cnf ,在[mysqld]下面加上: skip-name-resolve max_allowed_packet = 800M default-character-set=ut ...
- 史上最全 40 道 Dubbo 面试题及答案
https://blog.csdn.net/zl1zl2zl3/article/details/83721147
- bzoj千题计划303:bzoj4827: [Hnoi2017]礼物
https://www.lydsy.com/JudgeOnline/problem.php?id=4827 式子化简一下,发现最后只跟 Σ xi*yi 有关 第二个序列反转,就可以用FFT优化 注意: ...
- WorkerMan 入门学习之(二)基础教程-Connection类的使用
一.TcpConnection类 的使用 1.简单的TCP测试 Server.php <?php require_once __DIR__.'/Workerman/Autoloader.php' ...
- 动态规划之Fib数列类问题应用
一,问题描述 有个小孩上楼梯,共有N阶楼梯,小孩一次可以上1阶,2阶或者3阶.走到N阶楼梯,一共有多少种走法? 二,问题分析 DP之自顶向下分析方式: 爬到第N阶楼梯,一共只有三种情况(全划分,加法原 ...
- castle动态代理的使用
转自:https://blog.csdn.net/educast/article/details/6565447#动态代理的原理 原理其实很简单,就是在运行时生成新的对象,姑且叫做T,并使T继承自需要 ...