大数跨境

机器学习之鸢尾花种类预测

机器学习之鸢尾花种类预测 乐科科集团
2020-12-23
4
导读:震惊!我的计算机会自己判别花的种类了...




机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。

——百度百科



鸢尾花种类预测

作为机器学习的标志性练习项目,在这个项目里我们学习后的模型可以根据鸢尾花的四个特征(花萼的长和宽、花瓣的长和宽)来判别鸢尾花的种类:setosa,versicolor,virginnica。(虽然不懂什么意思,总之就是有三个种类。)


接下来,跟我一起来做做看吧!



环境准备

下载并安装:

python 3.6,

jupyterNote,

sklearn框架(可通过pip3直接安装)



基本步骤

1.构造数据


sklearn已经提供了鸢尾花(iris)的数据集,只需从框架中导入即可,这个数据集可以简单的理解为两个数组:一个特征数组,一个目标数组。

获取之后要将数据拆分为测试集和训练集,就好比学生的考试卷和练习题,训练集用来学习,测试集用来考核学习成果。



2.训练


将训练集进行学习,并检测结果。但是在本例中所用的算法不需要学习即可得出结果。



3.预测


输入特征值预测。



代码实现

from sklearn import datasets

#引入数据集

from sklearn.model_selection import 

train_test_split

#将数据分为测试集和训练集

from sklearn.neighbors import 

KNeighborsClassifier

#利用邻近点方式训练数据

iris=datasets.load_iris()

iris_x=iris.data

#特征变量,共四个参数:

花瓣的长和宽,花萼的长和宽,单位厘米。

iris_y=iris.target

#目标值:一个参数:

花的种类,共三种,用0,1,2来表示

x_train,x_test,y_train,y_test=

train_test_split(iris_x,iris_y,test_size=0.2)

#划分测试集合训练集,

test_size表示测试集占20%

knn=KNeighborsClassifier()

#引入学习算法:k近邻算法

knn.fit(x_train,y_train)

#训练



结果分析

查看训练成果在测试集中的准确度(代码如下)

print(knn.score(iris_x,iris_y))

得到的准确度有96%,可见学习的效果还是很可以的。

用四个特征值来进行预测(代码如下)

print(knn.predict([[1, 2, 3, 4]]))

得到[1],种类为versicolor



算法原理

KNN(k近邻算法):思想就是“物以类聚,人以群分”。KNN是一个死记硬背的笨学生,记住所有的训练数据,对于新的数据则直接和训练数据匹配,匹配的标准以k个最相似的数据(k一般为奇数)然后少数服从多数得出匹配数据的类别。相似度则应用特征值之间的欧式距离来判断,即特征值之差的平方和的算术平方根。

这里的x1可以理解为新数据的花瓣长度,y1是已知记录的花瓣长度,x2为新数据的花瓣宽度,y2是已知记录的花瓣宽度,以此类推。


学习总结

随着人工智能的火热,世界也愈发地趋向于智能化,说不定未来的生活就是AI的天下,至于人类如何在智能化中存活下来,也是值得考究的问题。(阿法狗:我要打十个...)




HR++

产品顾问→

马上咨询


推荐阅读

点击图片查看原文

点击图片查看原文

“在看”我吗?


【声明】内容源于网络
0
0
乐科科集团
让信息化,更容易!
内容 196
粉丝 0
乐科科集团 让信息化,更容易!
总阅读22
粉丝0
内容196