机器学习——KNN
导入类库
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
# 熵增益
# 熵越大,信息量越大,蕴含的不确定性越大KNN
1.计算待预测值到所有点的距离
2.对所有距离排序
3.找出前K个样本里面类别最多的类,作为待预测值的类别
代码
A = np.array([[1, 1], [1, 1.5], [0.5, 1.5]])
B = np.array([[3.0, 3.0], [3.0, 3.5], [2.8, 3.1]]) def knn_pre_norm(point):
a_len = np.linalg.norm(point - A, axis=1)
b_len = np.linalg.norm(point - B, axis=1)
print(a_len.min())
print(b_len.min()) def knn_predict_rev(point):
X = np.array([[1, 1], [1, 1.5], [0.5, 1.5], [3.0, 3.0], [3.0, 3.5], [2.8, 3.1]])
Y = np.array([0, 0, 0, 1, 1, 1]) knn = KNeighborsClassifier(n_neighbors=2)
knn.fit(X, Y) print(knn.predict(np.array([[1.0, 3.0]]))) def iris_linear():
# 加载iris数据
li = load_iris()
# 散点图
# plt.scatter(li.data[:, 0], li.data[:, 1], c=li.target)
# plt.scatter(li.data[:, 2], li.data[:, 3], c=li.target)
# plt.show()
# 分割测试集和训练集,测试集占整个数据集的比例是0.25
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=0.25)
# 创建KNN分类,使用最少5个邻居作为类别判断标准
knn = KNeighborsClassifier(n_neighbors=5)
# 训练数据
knn.fit(x_train, y_train)
# 预测测试集
# print(knn.predict(x_test))
# 预测np.array([[6.3, 3, 5.2, 2.3]])
print(knn.predict(np.array([[6.3, 3, 5.2, 2.3]])))
# 预测np.array([[6.3, 3, 5.2, 2.3]])所属各个类别的概率
print(knn.predict_proba(np.array([[6.3, 3, 5.2, 2.3]]))) if __name__ == '__main__':
# knn_predict_rev(None)
# knn_pre_norm(np.array([2.3,2.3]))
iris_linear()
机器学习——KNN的更多相关文章
- [机器学习] ——KNN K-最邻近算法
KNN分类算法,是理论上比较成熟的方法,也是最简单的机器学习算法之一. 该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别 ...
- 机器学习——kNN(1)基本原理
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- 机器学习--kNN算法识别手写字母
本文主要是用kNN算法对字母图片进行特征提取,分类识别.内容如下: kNN算法及相关Python模块介绍 对字母图片进行特征提取 kNN算法实现 kNN算法分析 一.kNN算法介绍 K近邻(kNN,k ...
- 机器学习-kNN
基于Peter Harrington所著<Machine Learning in Action> kNN,即k-NearestNeighbor算法,是一种最简单的分类算法,拿这个当机器学习 ...
- 机器学习-KNN算法详解与实战
最邻近规则分类(K-Nearest Neighbor)KNN算法 1.综述 1.1 Cover和Hart在1968年提出了最初的邻近算法 1.2 分类(classification)算法 1.3 输入 ...
- 第四十六篇 入门机器学习——kNN - k近邻算法(k-Nearest Neighbors)
No.1. k-近邻算法的特点 No.2. 准备工作,导入类库,准备测试数据 No.3. 构建训练集 No.4. 简单查看一下训练数据集大概是什么样子,借助散点图 No.5. kNN算法的目的是,假如 ...
- 机器学习 KNN算法原理
K近邻(K-nearst neighbors,KNN)是一种基本的机器学习算法,所谓k近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表.比如:判断一个人的人品,只需要观察 ...
- 机器学习-KNN分类器
1. K-近邻(k-Nearest Neighbors,KNN)的原理 通过测量不同特征值之间的距离来衡量相似度的方法进行分类. 2. KNN算法过程 训练样本集:样本集中每个特征值都已经做好类别 ...
- ML02: 机器学习KNN 算法
摘要: 一张图说清楚KNN算法 看下图,清楚了吗? 没清楚的话,也没关系,看完下面几句话,就清楚了. KNN算法是用来分类的. 这个算法是如何来分类的呢? 看下图,你可以想想下图中的 『绿色圆点』 ...
- 机器学习——kNN(2)示例:改进约会网站的配对效果
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
随机推荐
- (二叉树 DFS 递归) leetcode 101. Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- Qt: 非阻塞时间延迟;
1.使用时间耗损循环: #include <QTime> ... QTime delayTime = QTime::currentTime().addMSecs(1000); while( ...
- Kubernetes之ServiceAccount
ServiceAccount 是什么 Service Account为Pod中的进程和外部用户提供身份信息.所有的kubernetes集群中账户分为两类,Kubernetes管理的serviceacc ...
- 第四节:框架前期准备篇之进程外Session的两种配置方式
一. 基本介绍 1. 背景:Asp.Net默认的Session机制是进程内,存储在服务器端内存中,有这么几个缺点: ①:既然存在内存中,空间有限,不能存储大数据量信息,数据量多的话Session会被挤 ...
- free命令查看内存信息
free介绍 FREE(1) Linux User’s Manual FREE(1) NAME free - Display amount of free and used memory in the ...
- react中input自动聚焦问题
input自动聚焦问题 在react中可以使用refs解决这个问题,首先看一下refs的使用场景: (1)处理焦点.文本选择或媒体控制. (2)触发强制动画. (3)集成第三方 DOM 库. 使用re ...
- github及git使用
一.github及git Github用于托管和协作项目的网站,git是通常与github一起使用的版本控制系统.Github上有上百万个开源项目,在使用git的时候每个开发人员都在他们的计算机上有一 ...
- Centos-6服务器源配置(使用阿里云的源镜像)
首先在VM中安装从 https://mirrors.aliyun.com/centos/ 中下载好的centos镜像(这里以centos6.9 64 为例). 安装完成后先要进行备份 mv /etc ...
- 记事本 HTML
又学了一遍HTML,感觉轻松了好多,个人感觉HTML和画画差不多,只要有了想法,画出来其实并不难. 头部信息<head> 头部信息并不是给我们看的,而是给浏览器看的,当浏览器看到之后,才好 ...
- Ubuntu 16.04下安装MySQL及远程连接
最近因为要研究一个关于MySQL的漏洞,所以需要MySQL的环境,就用了近一个小时的时间搭建了一个,期间出了点问题,故记录于此. 1.首先是安装,在命令窗口中输入下面三条命令即可. sudo apt- ...