数据集说明:

一共58个数据样本

因为水果的名字是字符串,对其进行编码。

labelencoder = LabelEncoder()
data.iloc[:,0] = labelencoder.fit_transform(data.iloc[:,0])

对水果进行分类,最后预测正确值。一共有四类。

对于KNN算法,K的取值是需要自己设置的,sklearn中默认是5,水果分类实验中从1到30进行了选择,选取最好的那个k值再用于预测。

最终输出的是模型的得分。

整体代码:

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import matplotlib.pyplot as pltdata = pd.read_csv('fruit_data.csv')
# print(data)labelencoder = LabelEncoder()
data.iloc[:,0] = labelencoder.fit_transform(data.iloc[:,0])
# print(data)# print(labelencoder.classes_)from sklearn.model_selection import train_test_split
# 切分数据集,stratify=y表示切分后训练集和测试集中的数据类型的比例跟切分前y中的比例一致
# 比如切分前y中0和1的比例为1:2,切分后y_train和y_test中0和1的比例也都是1:2
# 设置random_state,使用同样的随机方式来切分数据
x_train,x_test,y_train,y_test = train_test_split(data.iloc[:,1:], data.iloc[:,0], test_size=0.3, stratify=data.iloc[:,0], random_state=20)# 保存不同k值测试集准确率
test_scores = []
# 保存不同k值训练集准确率
train_scores = []# 设置30个k值
k = 30
for i in range(1,k):knn = KNeighborsClassifier(i)knn.fit(x_train,y_train)# 保存测试集准确率test_scores.append(knn.score(x_test,y_test))# 保存训练集准确率train_scores.append(knn.score(x_train,y_train))plt.title('k-NN Varying number of neighbors')
plt.plot(range(1,k),test_scores,label="Test")
plt.plot(range(1,k),train_scores,label="Train")
plt.legend()
plt.xticks(range(1,k))
plt.xlabel('k')
plt.ylabel('accuracy')
plt.show()# 选择一个最好的k值作为模型参数
k = np.argmax(test_scores)+1
knn = KNeighborsClassifier(k)
knn.fit(x_train,y_train)
print(k)
print(knn.score(x_test,y_test))

机器学习项目实战——06KNN算法之水果分类相关推荐

  1. 机器学习项目实战——15Kmeans算法之NBA球队实力聚类分析

    聚类是无标签的 就是无监督学习 整体代码: from sklearn.cluster import KMeans import numpy as np import matplotlib.pyplot ...

  2. 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 电子商务网站数量迅速上升,将电子商务网站浏览者变为实际消费者,满 ...

  3. 机器学习项目实战——02回归算法之葡萄酒质量与时间的关系

    数据集,机器学习项目实战--数据集与代码-机器学习文档类资源-CSDN文库 采用的是一元线性回归模型 import numpy as np import matplotlib.pyplot as pl ...

  4. 【机器学习项目实战】Python实现聚类(Kmeans)分析客户分组

    说明:这是一个机器学习实战项目(附带数据+代码),如需数据+完整代码可以直接到文章最后获取. 1.问题定义 在日常银行.电商等公司中,随着时间的推移,都会积累一些客户的数据.在当前的大数据时代.人工智 ...

  5. python智慧城市_智慧城市背景下Python机器学习项目实战案例分享

    首先,何为智慧城市?智慧城市的"智慧"源自何处? 智慧城市的特征在于运用大数据和数字技术提高居民生活质量. 机构获得的数据越全面.越实时,它们就越有能力观测事件发生的详情.分析需求 ...

  6. 智慧城市背景下Python机器学习项目实战案例分享

    首先,何为智慧城市?智慧城市的"智慧"源自何处? 智慧城市的特征在于运用大数据和数字技术提高居民生活质量. 机构获得的数据越全面.越实时,它们就越有能力观测事件发生的详情.分析需求 ...

  7. 机器学习项目实战-能源利用率 Part-3(特征工程与特征筛选)

    博主前期相关的博客可见下: 机器学习项目实战-能源利用率 Part-1(数据清洗) 机器学习项目实战-能源利用率 Part-2(探索性数据分析) 这部分进行的特征工程与特征筛选. 三 特征工程与特征筛 ...

  8. 机器学习项目实战(五) 住房价格预测

    机器学习项目实战系列   住房价格预测 目录 机器学习项目实战系列   住房价格预测 一.概述 二.分析数据 1.数据导入 2.基础统计运算 3.特征观察 4.建立模型 5.分析模型表现 (1)学习曲 ...

  9. 【机器学习项目实战案例目录】项目详解 + 完整源码

    前言 大家好,我是阿光. 本专栏整理了<机器学习项目实战案例>,内包含了各种不同的入门级机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码. 正在更新中~ ✨

最新文章

  1. 模式设计概述:反应器(Reactor)模式
  2. python七:编码
  3. 相机标定获得内参矩阵及其他参数
  4. NSNumber 以及NSInteger,NSNumber以及Int的区别
  5. Python中的time、datetime、calendar模块(时间模块)
  6. JavaScript 访问对象属性和方法及区别
  7. 设计模式:单例和简单工厂
  8. eclipse中添加插件的方法
  9. 非功能性需求_非接触式喷射自动点胶机的优势在哪儿?
  10. JavaScript之继承(原型链)
  11. bat代码如何处理中文目录
  12. python三大器物---装饰器
  13. 微信小程序+“芝麻小客服”可设自动关注公众号,助力运营闭环
  14. 【Java 8 新特性】Java CompletableFuture thenApply()
  15. html如何制作圣诞树,分享用HTML5来实现一个3D逼真的圣诞树
  16. 巨杉数据库MySQL_【SequoiaDB】5 巨杉数据库SequoiaDB基本操作
  17. ts的.d.ts和declare究竟是干嘛用的
  18. 今日芯声 | 大大大!世界上最大的移动电源将前往北极圈
  19. 电影「哪吒之魔童降世」免 费 高 清 完 整 版 在 线 观 看
  20. IBM developerWorks linux 技术论坛

热门文章

  1. 内外兼修,适合儿童也适合成年人 ----- 《小狗钱钱》
  2. 初级会计实务--第四章第一节、实收资本或股本
  3. word添加导航标题
  4. 智能手术机器人市场与行业(三)
  5. Mysql数据库复习大纲
  6. 使用H-lua框架制作魔兽争霸地图(9-开局难度选择)
  7. 无法处理文件 XXXX.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记
  8. macOS aMule安装
  9. 想让用户“一见钟情”,你需要主题订阅消息精准推送
  10. Skitch 图片注释软件(推荐)