K-近邻算法之案例:鸢尾花种类预测--数据集介绍
K-近邻算法之案例:鸢尾花种类预测--数据集介绍
本实验介绍了使用Python进行机器学习的一些基本概念。 在本案例中,将使用K-Nearest Neighbor(KNN)算法对鸢尾花的种类进行分类,并测量花的特征。
本案例目的:
- 遵循并理解完整的机器学习过程
- 对机器学习原理和相关术语有基本的了解。
- 了解评估机器学习模型的基本过程。
1 案例:鸢尾花种类预测
Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。关于数据集的具体介绍:
2 scikit-learn中数据集介绍
2.1 scikit-learn数据集API介绍
- sklearn.datasets 【获取数据集】
- 加载获取流行数据集
- datasets.load_*() 【小数据:读数据从本地获取】
- 获取小规模数据集,数据包含在datasets里
- datasets.fetch_*(data_home=None) 【大数据,该数据从网上下载】
- 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
2.1.1 sklearn小数据集
sklearn.datasets.load_iris()
加载并返回鸢尾花数据集
2.1.2 sklearn大数据集
- sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’) 【subset:表示获取到的数据集类型】
- subset:'train'或者'test','all',可选,选择要加载的数据集。
- 训练集的“训练”,测试集的“测试”,两者的“全部”
2.2 sklearn数据集返回值介绍
- load和fetch返回的数据类型datasets.base.Bunch(字典格式)
- data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
- target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
- DESCR:数据描述
- feature_names:特征名,新闻数据,手写数字、回归数据集没有
- target_names:标签名
from sklearn.datasets import load_iris
# 获取鸢尾花数据集
iris = load_iris()
print("鸢尾花数据集的返回值:\n", iris)
# 返回值是一个继承自字典的Bench
print("鸢尾花的特征值:\n", iris["data"])
print("鸢尾花的目标值:\n", iris.target)
print("鸢尾花特征的名字:\n", iris.feature_names)
print("鸢尾花目标值的名字:\n", iris.target_names)
print("鸢尾花的描述:\n", iris.DESCR)
2.3 查看数据分布
通过创建一些图,以查看不同类别是如何通过特征来区分的。 在理想情况下,标签类将由一个或多个特征对完美分隔。 在现实世界中,这种理想情况很少会发生。
seaborn介绍
- Seaborn 是基于 Matplotlib 核心库进行了更高级的 API 封装,可以让你轻松地画出更漂亮的图形。而 Seaborn 的漂亮主要体现在配色更加舒服、以及图形元素的样式更加细腻。
- 安装 pip3 install seaborn
seaborn.lmplot() 是一个非常有用的方法,它会在绘制二维散点图时,自动完成回归拟合
- sns.lmplot() 里的 x, y 分别代表横纵坐标的列名,
- data= 是关联到数据集,
- hue=*代表按照 species即花的类别分类显示,
- fit_reg=是否进行线性拟合。
- 参考链接: api链接
%matplotlib inline # 可视化声明,一些老的版本不显示图的时候使用,现在基本上不会使用
# 内嵌绘图
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 把数据转换成dataframe的格式
iris_d = pd.DataFrame(iris['data'], columns = ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
iris_d['Species'] = iris.targetdef plot_iris(iris, col1, col2):sns.lmplot(x = col1, y = col2, data = iris, hue = "Species", fit_reg = False)plt.xlabel(col1)plt.ylabel(col2)plt.title('鸢尾花种类分布图')plt.show()
plot_iris(iris_d, 'Petal_Width', 'Sepal_Length')
2.4 数据集的划分
机器学习一般的数据集会划分为两个部分:
- 训练数据:用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
- 训练集:70% 80% 75%
- 测试集:30% 20% 25%
数据集划分api
- sklearn.model_selection.train_test_split(arrays, *options)
- x 数据集的特征值
- y 数据集的标签值 【目标值】
- test_size 测试集的大小,一般为float
- random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
- return 测试集特征训练集特征值值,训练标签,测试标签(默认随机取) 【这儿为return x_train,x_test,y_train,y_test的顺序不能写乱】
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 1、获取鸢尾花数据集
iris = load_iris()
# 对鸢尾花数据集进行分割
# 训练集的特征值x_train 测试集的特征值x_test 训练集的目标值y_train 测试集的目标值y_test
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
print("x_train:\n", x_train.shape)
# 随机数种子
x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
print("如果随机数种子不一致:\n", x_train == x_train1)
print("如果随机数种子一致:\n", x_train1 == x_train2)
K-近邻算法之案例:鸢尾花种类预测--数据集介绍相关推荐
- python人工智能——机器学习——分类算法-k近邻算法——kaggle案例: Facebook V: Predicting Check Ins
题目及翻译 Facebook and Kaggle are launching a machine learning engineering competition for 2016. Faceboo ...
- 【机器学习-K近邻算法】
K-近邻算法 K-近邻算法的快速入门 K-近邻(KNN)算法概念 殴式距离公式 电影分类案例 K-近邻算法API Scikit-learn工具 Scikit-learn包含内容 K-近邻算法API方法 ...
- 机器学习:K近邻算法
一.K-近邻算法简介 1 什么是K-近邻算法 根据你的"邻居"来推断出你的类别 1.1 K-近邻算法(KNN)概念 K Nearest Neighbor算法又叫KNN算法,这个算法 ...
- 机器学习算法——系统性的学会使用 K近邻算法(KNN)
目录 1.K-近邻算法简介 1.1 什么是K-近邻算法 1.2 K-近邻算法(KNN)概念 (1)定义: (2)距离公式: 1.3 电影类型分析 1.4 KNN算法流程总结 2.k近邻算法api初步使 ...
- 2、python机器学习基础教程——K近邻算法鸢尾花分类
一.第一个K近邻算法应用:鸢尾花分类 import numpy as np from sklearn.datasets import load_iris from sklearn.model_sele ...
- 机器学习算法系列之K近邻算法
本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...
- 统计学习方法笔记(一)-k近邻算法原理及python实现
k近邻法 k近邻算法 算法原理 距离度量 距离度量python实现 k近邻算法实现 案例地址 k近邻算法 kkk近邻法(kkk-NN)是一种基本分类和回归方法. 算法原理 输入:训练集 T={(x1, ...
- k近邻算法python_k-近邻算法的Python实现
本篇文章,想向各位介绍一个非常易于实现的机器学习算法:k-近邻算法,众所周知,k-近邻算法是非常常用的分类算法,现在给出k-近邻算法的官方解释:在一个样本数据集,也称作训练样本集,并且样本中每个数据都 ...
- K-近邻算法之案例:鸢尾花种类预测—流程实现
K-近邻算法之案例:鸢尾花种类预测-流程实现 1 再识K-近邻算法API sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm= ...
最新文章
- 黄聪:Ubuntu下使用低版g++编译器编译TSE
- python3中的新式类与经典类对比
- Python将新项添加到字典[重复]
- Python应用实战-从pandas的角度来对比MySQL,教你如何更快更好的学习sql
- Github Pages 搭建网站
- 具有Spring Boot的Spring Integration Standalone应用程序
- 负载均衡—几种常见算法
- 在SQL Server中为什么不建议使用Not In子查询
- 深度学习(三十三)CRF as RNN语义分割-未完待续
- 使用DataX同步MaxCompute数据到TableStore(原OTS)优化指南
- 压力测试工具之DDos-Attack
- linux进程(线程间)间通信-eventfd
- Atitit orm优缺点 Hinaernate mybatis 区别。attilax总结
- 达内android 代码,【达内唯一总部】Android实现获取系统应用列表-达内Android分享...
- java 中文车牌识别_EasyPR-Java开源中文车牌识别系统工程部署
- 简单易懂的现代魔法——Play Framework攻略1
- 管理学之父彼得·德鲁克:目标管理的基本思路、原则及分解方法
- 英特尔PX3网吧解决方案体验会在京举行(转)
- java实现excel导出功能
- 人工智能并不像你想象的那么迫在眉睫
热门文章
- 机器学习中,梯度下降算法的问题引入
- TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?
- 图森未来完成2.15亿美元D轮融资,将拓展无人驾驶运输服务
- 打造 AI Beings,和微信合作…第七代微软小冰的成长之路
- 单v100 GPU,4小时搜索到一个鲁棒的网络结构
- 无监督机器学习中,最常见4类聚类算法总结 | 技术头条
- AI一分钟 | 北京发放自动驾驶首批牌照,百度获准测试;亿航美国分公司申请破产,债务高达数百万美元
- 阿里云首席科学家闵万里:我们为什么敢挑战一百年的制度,因为黑科技能为挽救生命抢来50%的可能性
- 2021年2月程序员工资统计,又拖后腿了……
- 看完这篇还不懂Redis的RDB持久化,你们来打我!