首页 > 编程知识 正文

用knn算法对鸢尾花进行分类的报告,用神经网络算法进行鸢尾花分类

时间:2023-05-03 18:02:52 阅读:24652 作者:3333

实验一)鸢尾数据集分类一、问题描述采用机器学习算法建立模型,根据鸢尾花萼和花瓣大小区分鸢尾品种。 实现基本的三个分类问题。

二、数据集分析Iris光圈数据集内包含的三大类分别为光圈(Iris-setosa )、变色光圈(Iris-versicolor )、弗吉尼亚光圈)。 数据集共150个记录,每种记录50个数据,分别记录萼长、萼宽、花瓣长、花瓣宽4个特征,根据这4个特征预测鸢尾花卉属于哪个品种。 iris数据集包含在sklearn库中。 在sklearndatasetsdata文件夹下,文件名为iris.csv。 数据文件通常存储在 python 36libsite-packagessk learndatasetsdatairis.CSV中。 打开iris.csv。 数据格式如下: 第一行中的数据含义如下:

150 )数据集内的数据总数

4 )特征值类别数,即萼长、萼宽、花瓣长、花瓣宽。

setosa、versicolor和virginica类型的光圈的名称在第二行和后续行中的数据含义如下:

第一列为萼长值

第2列为花萼宽度值

第三列是花瓣长度的值

第四列是花瓣的宽度值

第5列的对应是种类(3种爱丽思欧雅玛分别为0、1, 2表示)三、 代码importnumpyasnpfromsklearn.datasetsimportload _ irisfromsklearn.model _ selectionimporttrain _ test _ splitfromsklearn s klear rsclassifieriris _ data=load _ iris (#此函数返回直接从Dict类继承的Bunch对象。 和字典一样,它由键-值对组成。 可以使用bunch.keys (、bunch.values )、bunch.items )等方法。 print(type(IRIS_# data ) ) data中为萼长、萼宽、花瓣长、花瓣宽的测定数据。 格式为NumPy数组print(iris_data['data'] )花的样本数据print (花的样本数: { }.format (iris _ data [ ' data ' ].shapa ) 2为virginicaprint [ iris _ data [ ' target ' ] ] #类别print [ iris _ data [ ' target _ names ' ] ] y _ train,y _ test=random_state=0) print (培训示例数据大小: {}.format(x_train.shape ) )培训示例标签大小: {} . format ) y_train print (测试示例标签大小() (.format ) y_test.shape ) ) KNN模型KNN=kneighborsclassifier (n _ neighbors 模型KNN.fit(x_train、y_train(y_pred=KNN.predict ) x_test )评估模型print ('模型精度: { :2 f } '.format 1.4,2.2 ) ) prediction=KNN.predict(x_new ) print ) )预测的目标类别为{ }.format (prediction ) )预测的目标在这个例子中,每个鸢尾都是一个样本,特征是每个鸢尾的萼长、宽度、花瓣长、宽带。 培训数据和测试数据培训数据:用于构建模型。

测试数据:用于评估模型的性能。 使用scikit-learn的train_test_split函数将原始数据集分为培训和测试数据,使用75%的数据作为培训集,使用25%的数据作为测试集。 scikit-learn的数据通常用大写x表示,标签用小写y表示,f(x )=y,x是函数的输入,是二维矩阵,小写y是输出的一维数组。 必须通过设置random_state为此函数赋值。 多次运行此代码可以获得完全相同的结果。 如果不设置此参数,将随机选择种子,运行结果也不同。 虽然可以调整random_state参数,但通常可以自由选择random_state值作为参数,因为在调整后在训练集中成功的模型未必在陌生的训练集中成功如果使用predict方法进行预测,则此函数的输入数据必须是二维数组,因此首先将创建的一维数组转换为二维数组的一行。 KNN对象的score方法用于计算测试集的精度。 四. KNN算法KNN,均称为K Nearest Neighbors,也称为k最近邻算法,是机器学习算法中最简单的分类算法之一。 其核心思想是,如果一个样本属于特征空间中k个最相邻样本中的大多数属于一类,则该样本也属于该类,并具有该类上样本的特性。 k是最近样本的个数,取其值很重要,是关系的最终分类结果。

如上图所示,是绿点分类的点。 K=3,最接近的三个点中,蓝色三角形多的情况下,绿点分为蓝色三角形K=5,最接近的五个点中,红色圆多的情况下,绿点分为红色圆。 由此可见,k值的选择会影响分类结果。

另一个重要因素是点距离的计算。 常见的距离测量方法有曼哈顿距离、欧式距离等。 通常KNN采用欧式距离。 以二维平面为例,二维空间中两点的欧式距离计算公示如下。

扩展到多维空间后,公示如下。

KNN简单地计算预测点和所有点之间的距离并排序,选择前k个值来看类别,进行类别多的自然分类。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。