搜索
写经验 领红包
 > 生活

鸢尾花分类pytho算法(鸢尾花分类pytoch)

导语:我的第一个Python机器学习应用:鸢尾花分类

初识数据

鸢(yuan,一声)尾花(Iris)数据集,是机器学习中的一个经典数据集。

鸢尾花是一种植物,我们需要通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica,对应数据集中的标签0,1,2)三个种类中的哪一类。

鸢尾花数据集包含在sklearn中的datasets类中,可以通过调用load_iris()函数来加载这个数据集,代码如下。

from sklearn.datasets import load_irisiris_dataset=load_iris()

说明:这里用到模块sklearn,需要自己安装。

拆分训练集和测试集

机器学习中,通常需要将收集好的带标签的数据分成两部分,一部分数据用于构建机器学习模型,叫做训练集(train set),其余的数据用来评估模型性能,叫做测试集(test set)。

from sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test=train_test_split(iris_dataset['data'],iris_dataset['target'],test_size=0.25,random_state=0)
sklearn中的train_test_split函数可以将数据按照一定比例分成测试集和训练集。这里将总体数据的75%作为训练集,25%作为验证集。andom_state指定随机数种子,使得函数的输出固定不变,让结果可重现。构建第一个模型:K近邻算法

这里选择k近邻算法,这是机器学习中一个最基本,也是最容易理解的一个算法。

from sklearn.neighbors import KNeighborsClassifierknn=KNeighborsClassifier(n_neighbors=1)knn.fit(X_train,y_train)
模型评估

衡量模型的优劣可以通过计算精度来衡量模型的优劣,精度就是品种预测正确的花所占的比例。

knn.score(X_test,y_test)

输出结果:

0.9736842105263158

从输出结果可以看出,测试集的精度约为0.97。

预测

例如,我们在野外发现了一朵鸢尾花,花萼长5cm宽2.9cm,花瓣长1cm宽0.2cm,这朵鸢尾花属于哪个品种呢?

import numpy as npX1=np.array([[5,2.9,1,0.2]])y1=knn.predict(X1)print(y1)

输出:

[0]

从上面看出,这朵新的鸢尾花的类别标签是0,也就是说它属于Setosa品种。

本文内容由小余整理编辑!