机器学习实战-KNN算法-鸢尾花分类

# 导入算法包以及数据集
from sklearn import neighbors
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import random
# 载入数据
iris = datasets.load_iris()
print(iris)

# 打乱数据切分数据集
# x_train,x_test,y_train,y_test = train_test_split(iris.data, iris.target, test_size=0.2) #分割数据0.2为测试数据,0.8为训练数据#打乱数据
data_size = iris.data.shape[0]
index = [i for i in range(data_size)]
random.shuffle(index)
iris.data = iris.data[index]
iris.target = iris.target[index]#切分数据集
test_size = 40
x_train = iris.data[test_size:]
x_test =  iris.data[:test_size]
y_train = iris.target[test_size:]
y_test = iris.target[:test_size]# 构建模型
model = neighbors.KNeighborsClassifier(n_neighbors=3)
model.fit(x_train, y_train)
prediction = model.predict(x_test)print(classification_report(y_test, prediction))

机器学习实战-KNN算法-水果分类

from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import matplotlib.pyplot as plt

data = pd.read_csv('fruit_data.csv')
data

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

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))

机器学习实战-KNN算法-20相关推荐

  1. 机器学习实战——KNN算法预测电影类型

    预测电影类型 现有爱情片和动作片(不是爱情动作片,雾)的打斗场面和接吻场面的次数统计,然后给出一个电影打斗场面和接吻场面出现的次数,预测其类型. 那么如何预测呢?当然用KNN了. KNN算法的原理就是 ...

  2. 机器学习之KNN算法

    机器学习之KNN算法 1 KNN算法 2 预测电影类型例子 3 sklearn实现KNN算法 4 总结 前言:主要介绍KNN算法的基本原理,公式.sklearn实现knn算法,以及knn的优点缺点使用 ...

  3. 机器学习:KNN算法对鸢尾花进行分类

    机器学习:KNN算法对鸢尾花进行分类 1.KNN算法的理解: 1.算法概述 KNN(K-NearestNeighbor)算法经常用来解决分类与回归问题, KNN算法的原理可以总结为"近朱者赤 ...

  4. 机器学习之KNN算法原理

    机器学习之KNN算法原理 1 KNN算法简介 2 算法思想 3 多种距离度量公式 ① 欧氏距离(Euclidean distance) ② 曼哈顿距离(Manhattan distance) ③ 闵式 ...

  5. 【机器学习】KNN算法实现手写板字迹识别

    文章目录 [机器学习]KNN算法实现手写板字迹识别 1. 前言 2. 实验背景 3. 测试过程 3.1 手写板及测试数据的制作 3.2 加载训练数据并进行KNN模型搭建 3.3 结果预测 4. 总结 ...

  6. 【机器学习】KNN算法实战项目二:水果分类

    KNN算法实战项目二:水果分类 2 KNN实现水果分类 2.1 模块导入与数据加载 2.2 数据EDA 2.3 模型创建与应用 2.4 绘制决策边界 手动反爬虫: 原博地址 https://blog. ...

  7. 机器学习-7.KNN算法编程实战:红酒分类

    EduCoder:机器学习-KNN算法编程实战:红酒分类 第1关:分析红酒数据 编程要求: 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,完成alcohol_mea ...

  8. 【机器学习】KNN算法实战项目三:金融贷款策略分类

    KNN算法实战项目三:金融贷款策略分类 3 金融贷款策略中的KNN分类 3.1 模块导入与数据加载 3.2 数据EDA 3.2.1 数据预处理 3.2.2 数据可视化 3.2.3 特征工程 3.3 模 ...

  9. 机器学习实战——KNN及部分函数注解

    书籍:<机器学习实战>中文版 IDE:PyCharm Edu 4.02 环境:Adaconda3  python3.6 本系列主要是代码学习记录,其中设计的理论知识,不做过多解释.书中代码 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 P0101
  2. MSMQ: C# MSMQ编程问题
  3. c++学习笔记之运算符的重载
  4. 网站如何启用SSL安全证书?IIS7启用新建Https:/
  5. java资源争夺_所有满足类似需求,争夺同类资源的组织和个人统称为(   )。...
  6. Jquery和雅虎的YQL服务实现天气预报功能!
  7. (转)OGNL与值栈
  8. Linux系统下ifconfig和route配置网络详解
  9. 2018~2021年软考下午真题考点总结-软考最新
  10. 中国省市地图JSON数据下载
  11. ecshop内页显示最新文章
  12. 乐山市计算机学校灵异事件,我也来说个以前上学时候的灵异事件
  13. linaro软件源更新问题
  14. unexpected error while obtaining UI hierarchy
  15. 问题解决:pdf打不开,出现Acrobat failed to connect to a DDE server问题
  16. 人生进度条百分之20_1分钟get技能:缺了“进度条”,你注定和80%的失败者一样实现不了人生目标...
  17. 产品经理如何营销自己
  18. python把汉字变成拼音英文_利用python将表格中的汉字转化为拼音
  19. win10和win server 2016新的TCP功能介绍
  20. pytorch整理(三)

热门文章

  1. 怎么将arcgis新建工具条如何保存_ArcGIS中寻找最短路径的方法
  2. csp 通信网络 java_CSP 通信网络
  3. ucla研究生计算机科学,详解UCLA研究生录取数据,达到什么标准才能稳被录?
  4. mybatis 忽略实体字段_27道mybatis面试真题,你能答对几道?
  5. linux内核挂载nfs,Linux 挂载NFS文件系统
  6. java jsch 密钥登陆_我们可以使用JSch进行基于SSH密钥的通信吗?
  7. 错误:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序
  8. 【ruoyi若依】Caused by: java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers
  9. jquery-confirm
  10. python dataframe取一列_python - 从pandas DataFrame列标题中获取列表