KNN 分类红酒数据集

文章目录

  • KNN 分类红酒数据集
    • 概述
    • 代码
      • import
      • 数据预处理
      • 定义模型
      • 创建 KNN 模型实例
      • 训练
      • 测试

概述

使用 KNN(K 近邻)算法,对红酒(wine)数据集进行分类。

代码

import

导入必要的组件,包括 numpy、pandas、sklearn 等库

from collections import Counter
from typing import Optionalimport numpy as np
from pandas import DataFrame
from sklearn.datasets import load_wine
from sklearn.metrics import accuracy_score
from sklearn.metrics.pairwise import euclidean_distances
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler

数据预处理

  • 数据集划分
  • 归一化(极大提升准确率)
# 导入 sklearn 提供的 wine 数据集
wine = load_wine(return_X_y=True, as_frame=True)data: DataFrame = wine[0]
target: DataFrame = wine[1]# 划分训练集与测试集(2:1)
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.33)# 对各个属性进行“归一化”处理
scalar = MinMaxScaler()
X_train = scalar.fit_transform(X_train)
X_test = scalar.fit_transform(X_test)y_train = y_train.to_numpy()
y_test = y_test.to_numpy()

定义模型

class KNN:def __init__(self, k: int):self.k: int = kself.data: Optional[np.ndarray] = Noneself.target: Optional[np.ndarray] = Nonedef fit(self, data_: np.ndarray, target_: np.ndarray) -> None:self.data = data_self.target = target_def predict(self, data_: np.ndarray) -> int:# 最小的 k 个distances = np.array([self.euclidean(row, data_) for row in self.data]).argsort()[:self.k]counter = Counter([self.target[index] for _, index in enumerate(distances)])return counter.most_common(1)[0][0]# 欧式距离@staticmethoddef euclidean(x1: np.ndarray, x2: np.ndarray) -> float:return euclidean_distances(np.reshape(x1, (1, -1,)),np.reshape(x2, (1, -1,)),)[0, 0]

创建 KNN 模型实例

K: int = 4
knn: KNN = KNN(k=K)

训练

knn.fit(X_train, y_train)

测试

使用 Accuracy 作为精度评判标准,已达到的最高正确率:0.9830508474576272。

predicts: list = []
targets: list = []
for idx, (X, y) in enumerate(zip(X_test, y_test)):predicts.append(knn.predict(X))targets.append(y)accuracy_score(predicts, targets)

KNN 分类红酒数据集相关推荐

  1. 莺尾花数据集--kNN分类

    Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...

  2. 以红酒数据集分类为例做决策树的可视化

    文章目录 前言 决策树原理 可视化决策树举例 gini entropy 总结 前言 本文是决策树可视化例子 决策树原理 决策树的分类原理有ID3(信息增益最大准则).C4.5(信息增益比准则).CAR ...

  3. Python实现knn分类算法(Iris 数据集)

    1.KNN分类算法 KNN分类算法(K-Nearest-Neighbors Classification),又叫K近邻算法,是一个概念极其简单,而分类效果又很优秀的分类算法. 他的核心思想就是,要确定 ...

  4. python KNN分类算法 使用鸢尾花数据集实战

    KNN分类算法,又叫K近邻算法,它概念极其简单,但效果又很优秀. 如觉得有帮助请点赞关注收藏啦~~~ KNN算法的核心是,如果一个样本在特征空间中的K个最相似,即特征空间中最邻近的样本中的大多数属于某 ...

  5. Task09基于模拟数据集的KNN回归、基于马绞痛数据集的KNN数据预处理+KNN分类pipeline

    Task09 基于模拟数据集的KNN回归.基于马绞痛数据集的KNN数据预处理+KNN分类pipeline 一.学习内容概括 学习资料: 1.阿里云天池:https://tianchi.aliyun.c ...

  6. knn鸢尾花数据集java_机器学习——鸢尾花数据集(Knn分类)

    Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个 ...

  7. 用鸢尾花数据集实现knn分类算法

    一.题目: 原生python实现knn分类算法,用鸢尾花数据集 二.算法设计 1. 准备数据,对数据进行预处理 2. 选用合适的数据结构存储训练数据和测试元组 3. 设定参数,如k 4.维护一个大小为 ...

  8. sklearn实现KNN分类算法

    sklearn实现KNN分类算法 Pyhthon Sklearn 机器学习库提供了 neighbors 模块,该模块下提供了 KNN 算法的常用方法,如下所示: 类方法 说明 KNeighborsCl ...

  9. python分类算法_用Python实现KNN分类算法

    本文实例为大家分享了Python KNN分类算法的具体代码,供大家参考,具体内容如下 KNN分类算法应该算得上是机器学习中最简单的分类算法了,所谓KNN即为K-NearestNeighbor(K个最邻 ...

  10. KNN 分类算法原理代码解析

    作者 | Charmve 来源 | 迈微AI研习社 k-最近邻算法是基于实例的学习方法中最基本的,先介绍基x`于实例学习的相关概念. 基于实例的学习 已知一系列的训练样例,很多学习方法为目标函数建立起 ...

最新文章

  1. 实战Gradle——第一部分 Gradle介绍
  2. socket-accept
  3. linux常用命令记录
  4. Python 调用C函数
  5. Mysql Order By 注入总结
  6. C6748_UART(5) - UART寄存器
  7. 高效管理http连接
  8. CLION CMAKE 缺-g 导致断点不执行(无效)
  9. caddy 作为微服务的 API gateway
  10. 微信扫码访问网站调用默认浏览器打开如何实现?
  11. C++调用C#编写的DLL【转】
  12. 三维马氏距离_马氏距离2
  13. 【GNN报告】微软亚洲研究院郑书新:图神经网络迈入Transformer时代
  14. 使用md5进行密码的加密和验证
  15. android studio引用高德地图api后地图显示白屏
  16. join语句的执行顺序
  17. Basic4IOS (B4I) New Version Crack
  18. 申请高新技术企业需要多少个专利?
  19. 腾讯云服务器2核4G、4核8G、8核16G、16核32G配置报价表出炉
  20. 我的世界手机有PHP的开服器下载,【BDS】MC基岩版官方开服器Windows版插件开发包...

热门文章

  1. 德语翻译-德语在线批量翻译软件
  2. 整篇文章翻译软件对接谷歌等各大翻译平台
  3. 软件测试过程中主要涉及的文档及其内容
  4. python selenium无头浏览器
  5. 后台仿京东商城接口设计缺陷吐槽篇
  6. C语言程序员面试100题,c语言面试最必考的十道试题,求职必看!!!
  7. html文件怎么用华为手机打开,如何调整华为手机中的文件默认打开方式
  8. 数据库1_五大主流数据库模型
  9. (附源码)springboot西安市中小学生护眼平台开发 毕业设计 080855
  10. 企业级多用户发卡平台源码PHP