这里我们用酒的分类来进行实战练习

下面来代码

1.把酒的数据集载入到项目中

from sklearn.datasets import load_wine
#从sklearn的datasets模块载入数据集
wine_dataset = load_wine()
#打印酒数据集中的键
print('\n\n\n')
print('代码运行结果:')
print('====================================')
print('红酒数据集中的键:\n{}'.format(wine_dataset.keys()))
print('====================================')
print('\n\n\n')
#使用.shape来打印数据的概况
print('\n\n\n')
print('代码运行结果:')
print('====================================')
print('数据概况:{}'.format(wine_dataset['data'].shape))
print('====================================')
print('\n\n\n')
#打印酒的数据集中的简短描述
print(wine_dataset['DESCR'])

2.下面我们来生成训练集和测试集来训练和测试K最近邻算法模型

  后面的例子中我们用大写的X来表示数据的特征,用小写的y表示数据对应的标签.这是因为X是一个二维数组,也称为矩阵,而y是一个一维数组,或者说是一个向量

#导入数据集拆分工具
from sklearn.model_selection import train_test_split
#将数据集拆分为训练数据集和测试数据集
X_train,X_test,y_train,y_test = train_test_split(wine_dataset['data'],wine_dataset['target'],random_state=0)
print('\n\n\n')
print('代码运行结果:')
print('====================================')
#打印训练数据集中特征向量的形态
print('X_train shape:{}'.format(X_train.shape))
#打印测试数据集中特征向量的形态
print('X_train shape:{}'.format(X_test.shape))
#打印训练数据集中特征向量的形态
print('X_train shape:{}'.format(y_train.shape))
#打印测试数据集中特征向量的形态
print('X_train shape:{}'.format(y_test.shape))
print('====================================')
print('\n\n\n')

3.使用K最近邻算法进行建模

#导入KNN分类模型
from sklearn.neighbors import KNeighborsClassifier
#指定模型的n_neighbors参数值为1
knn = KNeighborsClassifier(n_neighbors = 1)

接下来使用knn方法中的"fit()"(拟合)方法来进行建模

print('\n\n\n')
print('代码运行结果:')
print('====================================')
#用模型对数据进行拟合
knn.fit(X_train,y_train)
print(knn)
print('====================================')
print('\n\n\n')

4.训练好了模型,接下来我们使用模型对新样本的分类进行预测

先来看一下模型的评分:0.76(不算好,也不算差,只进行测试K最近邻算法,权且消遣)

print('\n\n\n')
print('代码运行结果:')
print('====================================')
#打印模型的得分
print('测试数据集得分:{:.2f}'.format(knn.score(X_test,y_test)))
print('====================================')
print('\n\n\n')

5.接下来大餐来了,甭管准不准,先来预测一下吧

import numpy as np
#输入新的数据点
X_new = np.array([[13.2,2.77,2.51,18.5,96.6,1.04,2.55,0.57,1.47,6.2,1.05,3.33,820]])
#使用.predict进行预测
prediction = knn.predict(X_new)
print('\n\n\n')
print('代码运行结果:')
print('====================================')
print('预测新红酒的分类为:{}'.format(wine_dataset['target_names'][prediction]))
print('====================================')
print('\n\n\n')

结果是:

代码运行结果:
====================================
预测新红酒的分类为:['class_2']
====================================

总结:

  ok,作为第一个机器学习的小实战,这的确是激动人心的,不过这远远达不到我们的要求,在求知的道路上我们永不止步

文章引自:《深入浅出python机器学习》

K最近邻算法项目实战的更多相关文章

  1. 机器学习-K最近邻算法

    一.介绍 二.编程 练习一(K最近邻算法在单分类任务的应用): import numpy as np #导入科学计算包import matplotlib.pyplot as plt #导入画图工具fr ...

  2. 机器学习【一】K最近邻算法

    K最近邻算法 KNN 基本原理 离哪个类近,就属于该类   [例如:与下方新元素距离最近的三个点中,2个深色,所以新元素分类为深色] K的含义就是最近邻的个数.在sklearn中,KNN的K值是通过n ...

  3. 【算法】K最近邻算法(K-NEAREST NEIGHBOURS,KNN)

    K最近邻算法(k-nearest neighbours,KNN) 算法 对一个元素进行分类 查看它k个最近的邻居 在这些邻居中,哪个种类多,这个元素有更大概率是这个种类 使用 使用KNN来做两项基本工 ...

  4. 图说十大数据挖掘算法(一)K最近邻算法

    如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...

  5. 《算法图解》——第十章 K最近邻算法

    第十章    K最近邻算法 1 K最近邻(k-nearest neighbours,KNN)——水果分类 2 创建推荐系统 利用相似的用户相距较近,但如何确定两位用户的相似程度呢? ①特征抽取 对水果 ...

  6. 12、K最近邻算法(KNN算法)

    一.如何创建推荐系统? 找到与用户相似的其他用户,然后把其他用户喜欢的东西推荐给用户.这就是K最近邻算法的分类作用. 二.抽取特征 推荐系统最重要的工作是:将用户的特征抽取出来并转化为度量的数字,然后 ...

  7. [笔记]《算法图解》第十章 K最近邻算法

    K最近邻算法 简称KNN,计算与周边邻居的距离的算法,用于创建分类系统.机器学习等. 算法思路:首先特征化(量化) 然后在象限中选取目标点,然后通过目标点与其n个邻居的比较,得出目标的特征. 余弦相似 ...

  8. PCB 加投率计算实现基本原理--K最近邻算法(KNN)

    PCB行业中,客户订购5000pcs,在投料时不会直接投5000pcs,因为实际在生产过程不可避免的造成PCB报废, 所以在生产前需计划多投一定比例的板板, 例:订单 量是5000pcs,加投3%,那 ...

  9. KNN算法项目实战——改进约会网站的配对效果

    KNN项目实战——改进约会网站的配对效果 1.项目背景: 海伦女士一直使用在线约会网站寻找适合自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现自己交往过的人可 ...

随机推荐

  1. KL距离(相对熵)

    KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...

  2. Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询

    --表名,表占用空间大小(MB),行数select table_name, round(num_rows * avg_row_len /1024/1024, 8) as total_len, num_ ...

  3. osg object AnimationPathCallback

    osg::ref_ptr<osg::Node> OSG_Qt_::operateMatrix() { osg::ref_ptr<osg::Group> group = new ...

  4. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_02-用户认证-认证服务查询数据库-需求分析&搭建环境

    1.2 认证服务查询数据库 1.2.1 需求分析 认证服务根据数据库中的用户信息去校验用户的身份,即校验账号和密码是否匹配. 认证服务不直接连接数据库,而是通过用户中心服务去查询用户中心数据库. 完整 ...

  5. java数据类型,取值范围,引用类型解析

      与javascript不同,Java是强类型语言,在定义变量前需要声明数据类型.主要分两种数据类型:基本数据类型和引用数据类型. 1.基本数据类型分析: 基本数据类型 数值型 整数型 byte字节 ...

  6. 一秒 解决 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql 问题

    提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'.前两天也出现过这个问题,网上找了一个比 ...

  7. Kafka管理与监控——broker宕机后无法消费问题

    背景 因磁盘满了,导致kafka所有的服务器全部宕机了,然后重启kafka集群,服务是启动成功了,但有一些报错: broker1: broker2: broker3:一直在刷以下错误信息 虽然报了这些 ...

  8. 无法连接App Store

    试了很多网上的方法,都没有效果,最后把hosts文件清空了,就可以了,不知道是为啥,同一份hosts文件在屋里能用,公司就不能用.

  9. iOS-UITextField和UITextView隐藏键盘

    UITextField和UITextView隐藏键盘 71 views, IOS DEV, by admin. self._textField.returnKeyType=UIReturnKeyDon ...

  10. linux下的进程通信之管道与FIFO

    概念:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条.管道的一端连接一个进程的输出.这个进程会向管道中放入信息.管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息. 优点:不需 ...