KNN 算法-数据集拆分|学习笔记

简介: 快速学习 KNN 算法-数据集拆分

开发者学堂课程【高校精品课-华东师范大学-人工智能基础:KNN 算法-数据集拆分】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/920/detail/15581


KNN 算法-数据集拆分


内容介绍:

一、鸢尾花数据集

二、数据集拆分


一、鸢尾花数据集

上一讲我们介绍了K近邻分类算法的基本概念和他的三个核心要素。KNN 算法是一个简单高效的分类算法。以K近邻算法为代表的分类算法是数据分析中最常用的方法。这一讲,我们将介绍K近邻分类算法的具体应用。

我们将使用 KNN 算法对鸢尾花数据集进行分类。首先介绍一下鸢尾花数据集。鸢尾花(iris)是单子叶百合目花卉。鸢尾花数据集最初由科学家 Anderson 测量收集而来,1936年因为用于公开发表的 fisher 线性判别分析。

作为一个示例,在机器学习领域开始广为人知。

数据集中的鸢尾花数据主要收集至加拿大加斯帕半岛,是一份经典的数据集。鸢尾花数据集共收集了三类鸢尾花。即山鸢尾花,杂色鸢尾花和弗吉尼亚鸢尾花。每一类鸢尾花有50条记录。共150条数据。

数据集包括四个属性特征,分别是花瓣长度、花瓣宽度、花萼长度、花萼宽度。我们来查看一下数据集。

In[]:from sklearn.datasets import load_iris

Iris_dataset = load_iris()

Iris_dataset

创建一个对象 Iris_dataset 等于 load_iris,把 Iris_dataset 显示出来。

通过结果可以查看到数据集的 data 部分是150行四列数据。target 部分是150朵花的类别。从 target name 中可以看出类别名字及三种花的名称。DESCR description 是对数据级的描述文字。在使用时,也可以分别查看数据的各项属性。

例如:

In[2]:print(Iris_dataset.Keys())

dict_keys([‘data’,’target’,’target_name’,’DESCR’,’feature_names’])

查看数据集的 key。同样,还可以查看它的 feature_names。

In[3]:print(Iris_dataset[‘feature_names’])

[‘sepal length(cm)’,’sepal width (cm)’,’petal length(cm)’,’petal width (cm)’]  

查看数据集的特征名称,分别是花瓣长度、花瓣宽度、花萼长度、花萼宽度。

In[3]:print(Iris_dataset[‘data’])

查看数据 data

print(iris_dataset['data'].shape)#查看数据的结构

print(iris_datasetl ['data'][:5])#查看前5条数据

#查看分类信息

print(iris_dataset['target_names'])#标记名

print(type(iris_dataset['target']))#标记类型

print(iris_datasetl [‘target'].shape)#标记维度

print(iris_dataset[‘target'])# 标记值

print(iris_dataset['DESCR'][:20]+”\n......”)#查看数据集的简介的前20个字符。

还可以查看数据查看前五条数据,查看各类信息,比如标记名 target_names,标记类型 target,标记维度 target shape。标记值 target 以及数据集简介 description 的前20个字符。


二、数据集拆分

数据集拆分模型在被应用之前需要测定模型的准确程度。因此,建立模型需要两个数据集,训练用数据集和测试用数据集。这里的训练用数据集称为训练集 training set,测试用的数据集称为测试集 testing set。可以这样理解,训练集是学生平时学习使用的练习题。那么测试集就是考试卷。当然,在学习中训练集。应该是带答案。可以使用train test split 函数,Train test split 函数指交叉验证中常用的函数。功能是从样本中随机的按比例选取训练数据和测试数据。train_test_split 函数属于sklearn.model_selection类中的交叉验证功能,能随机地将样本数据集合拆分成训练集和测试集。

其格式为:

X_train,X_test, y_train, y_test=

Cross_validation.train_test_split(train_data,train_target,test_size=0.3,random_state=0)

来看主要参数解释 train_data 是要划分的样本特征数据。train_target 是要划分的样本结果,test_size 是指测试集占的总的百分比,默认值是0.3即预留30%的测试样本,如果是整数的话,则是测试题的样本数量。

random_state 这个参数是随机数的种子,随机数种子的实质是一种随机数的编号,在需要重复实验的时候,使用同一编号能够得到同样一组随机数。比如随机数的种子的值为1,其他参数相同的情况下,每次得到的随机数都是相同的。

如果每次实验需要不一样的数据。则 random_state 缺少。下面我们对 iris 数据集进行拆分。

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

Iris_dataset=load_iris()X_train.X_test.y_train.y_test=train_test_split(iris_dataset[‘data’].Iris_dataset[‘target’].random_state=2)

从模型选择中 import train_test_split 包含数据集切分函数。使用 Iris_dataset。

其中 data 部分作为第一个参数。target 部分作为第二个参数,其它参数默认返回值是四个 X_train,X_test,y_train,y_test。下边查看拆分后的训练集和测试集

print(“X_train”,X_train)

print(“y_train”,y_train)

print(“X_test”,X_test)

print(“y_test”,y_test)

print(“X_train shape:{}”,format(X_train shape))

print(“X_test shape:{}”,format(X_test shape))

从结果看数据集被分成了两部分。训练集大小的是112*4。测试集大小的是38*4。

相关文章
|
15天前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
58 4
|
2月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
3月前
|
算法 Python
KNN
【9月更文挑战第11天】
54 13
|
3月前
|
算法 大数据
K-最近邻(KNN)
K-最近邻(KNN)
|
3月前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
4月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
5月前
knn增强数据训练
【7月更文挑战第27天】
40 10
|
5月前
|
机器人 计算机视觉 Python
K-最近邻(KNN)分类器
【7月更文挑战第26天】
49 8
|
5月前
knn增强数据训练
【7月更文挑战第28天】
46 2