Python3 k-邻近算法(KNN)
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 29 13:13:44 2017 @author: markli
"""
import numpy as np;
#两点之间的距离采用欧式几何距离
'''
采用欧式距离进行K最小临近分类
x 未知分类点 m*1 向量
y n个测试样本点 m*n 维向量
'''
def ComputeDistance(x,y):
m = len(x); #获取维度数量
#print(m);
tempeye = -np.eye(m);
tempone = np.ones((1,m));
C = np.vstack((tempone,tempeye));#中间过渡矩阵 m+1 * m 按列合并,列数不变扩张行
translateMatrix = np.hstack((x,y)); #按行合并,行数不变,扩张列
tempresult = np.dot(translateMatrix,C);
result = np.multiply(tempresult,tempresult);
#result = [d**2 for d in np.array(tempresult)];
result = np.sum(result,axis=0)
distance = [pow(d,1/m) for d in np.array(result)];
return distance; '''
k 选取点的个数
distance 带预测点与每个样本点的距离
labels 每个样本点的类别标记
return 返回距离最近的k的样本点的类别标记
'''
def KNN(k,distance,labels):
dis_label = [];
for i in range(len(labels)):
tup = (distance[i],labels[i]);
dis_label.append(tup);
dis_label = sorted(dis_label,lambda x:x[0]);
Kmin = [];
for i in range(k-1):
label = dis_label[i][1];
if label not in Kmin:
Kmin.append(label);
return Kmin; #sklearn 中的KNN
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 30 09:36:18 2017 @author: markli
"""
from sklearn import neighbors;
from sklearn import datasets;
import numpy as np;
import matplotlib.pyplot as plt; KNN = neighbors.KNeighborsClassifier(n_neighbors=5,weights='distance');
iris = datasets.load_iris(); #print(iris); KNN.fit(iris.data,iris.target);
x = [0.2,0.4,0.3,0.5];
y = KNN.predict(np.array(x).reshape((1,4)));
print(iris.target_names[y]); #k = neighbors.NearestNeighbors();
#A = k.kneighbors_graph(iris.data,n_neighbors=5,mode='distance');
Python3 k-邻近算法(KNN)的更多相关文章
- k邻近算法(KNN)实例
一 k近邻算法原理 k近邻算法是一种基本分类和回归方法. 原理:K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该输入实 ...
- <机器学习实战>读书笔记--k邻近算法KNN
k邻近算法的伪代码: 对未知类别属性的数据集中的每个点一次执行以下操作: (1)计算已知类别数据集中的点与当前点之间的距离: (2)按照距离递增次序排列 (3)选取与当前点距离最小的k个点 (4)确定 ...
- Python实现kNN(k邻近算法)
Python实现kNN(k邻近算法) 运行环境 Pyhton3 numpy科学计算模块 计算过程 st=>start: 开始 op1=>operation: 读入数据 op2=>op ...
- 《机器学习实战》学习笔记一K邻近算法
一. K邻近算法思想:存在一个样本数据集合,称为训练样本集,并且每个数据都存在标签,即我们知道样本集中每一数据(这里的数据是一组数据,可以是n维向量)与所属分类的对应关系.输入没有标签的新数据后,将 ...
- 监督学习——K邻近算法及数字识别实践
1. KNN 算法 K-近邻(k-Nearest Neighbor,KNN)是分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似( ...
- k近邻算法(KNN)
k近邻算法(KNN) 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. from sklearn.model_selection ...
- kaggle赛题Digit Recognizer:利用TensorFlow搭建神经网络(附上K邻近算法模型预测)
一.前言 kaggle上有传统的手写数字识别mnist的赛题,通过分类算法,将图片数据进行识别.mnist数据集里面,包含了42000张手写数字0到9的图片,每张图片为28*28=784的像素,所以整 ...
- 机器学习算法及代码实现–K邻近算法
机器学习算法及代码实现–K邻近算法 1.K邻近算法 将标注好类别的训练样本映射到X(选取的特征数)维的坐标系之中,同样将测试样本映射到X维的坐标系之中,选取距离该测试样本欧氏距离(两点间距离公式)最近 ...
- [机器学习实战] k邻近算法
1. k邻近算法原理: 存在一个样本数据集,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对 ...
- 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)
六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocess ...
随机推荐
- $.AJAX参数提交及后台获取方式
$.AJAX默认是get方式提交,所以你在后台只能用获取url参数的方式获取,可指定type为post更改提交方式: 在后台可通过Request["控件name/url参数key" ...
- numpy 基础 —— np.linalg
- MySQL的备份和恢复-mysqldump
MySQL的备份和恢复-mysqldump 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么需要备份 1>.做灾难恢复 天有不测风云嘛,如果你的服务器被黑客攻击了(比 ...
- Dubbo学习笔记9:Dubbo服务提供方启动流程源码分析
首先我们通过一个时序图,直观看下Dubbo服务提供方启动的流程: 在<Dubbo整体框架分析>一文中我们提到,服务提供方需要使用ServiceConfig API发布服务,具体是调用代码( ...
- hdu 5290 Bombing plan
http://acm.hdu.edu.cn/showproblem.php?pid=5290 题意: 一棵树,每个点有一个权值wi,选择点i即可破坏所有距离点i<=wi的点,问破坏所有点 最少需 ...
- 何凯文每日一句打卡||DAY4
- SQL Server 的字段不为NULL时唯一
CREATE UNIQUE NONCLUSTERED INDEX 索引名称ON 表名(字段) WHERE 字段 is not null SQL Server 2008+ 支持
- C根据排序字符串
#include<stdio.h> #include<string.h> #include <stdlib.h> #define STR_LEN_MAX 100 c ...
- expect 交互
expect expect 是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录. exp_continue # 多个spawn命令时并行 interact # 执行完成 ...
- Servlet笔记8--乱码解决方案
乱码解决方案: 代码详解: package com.bjpowernode.javaweb.servlet; import java.io.IOException; import javax.serv ...