前言
也算是自己接触的第一个实例化的完整实现的小项目了吧(以前的的作业之类的都是没完全弄懂就交了不算哈),本此分享为简易鸢尾花的分类,实现语言是python 3.7,实现环境就是jupyter notebook。
1.数据集简介
本次数据集是从sklearn库中导入的load_iris()数据集,数据分四列,分别代表花萼长度、花萼宽度、花瓣长度、花瓣宽度,标签列或者说是target列有三种花种的类别数据表示分别是:'setosa', 'versicolor', 'virginica';在数据集中以0,1,2 的形式展示。在本次实验中选择的是二分类任务这就要求我们对数据集进行一定的划分(这点的代码方面给了我很大的提升,个人觉得受益匪浅,我入坑的前进道路进了一大步)
importnumpy as npimportmatplotlib.pyplot as pltfrom sklearn.datasets importload_irisfrom pylab importmpl
iris=load_iris()
iris.feature_names, iris.target_names,iris.target,iris,data # 显示你需要看的所有数据
2.看看数据
下面我们来看看数据集的具体数字,如下图所示,四列是feature_names的数据,也就是花萼的有关数据,中间一行是target 也就是标签--花的种类,可以看到有50个0、50个1、50个2。
3.筛选数据并可视化
接下来就是数据筛选,我们选择二分类需要的数据,在这里决定对0和1进行分类,数据选择为前一百个。利用花萼长度和花萼宽度进行一个预测,四个数据的以此类推大致输出就是z = sigmoid(w1x1 + w2x2),w是权重值,x是特征。
1 x = iris.data[0:100,0:2] #数据选择0到100行。前两列的标签数据,也就是0与1的花萼花瓣的数据
2 y = iris.target[0:100] #这是选中对应的前100个标签数据
3 samples_0 = x[y == 0,:] #samples-0 是标签 y==0的集合
4 samples_1 = x[y == 1,:] #samples-1 是标签 y==1的集合
5 plt.scatter(samples_0[:,0],samples_0[:,1],marker ='o',color = 'r')6 plt.scatter(samples_1[:,0],samples_1[:,1],marker ='o',color = 'b') #画出散点图
7 mpl.rcParams['font.sans-serif'] = ['SimHei'] #没有这行代码,画出的图的xy轴标签数据会乱码没发现显示
8 plt.xlabel("花萼长度")9 plt.ylabel("花萼宽度")
显示的图像如下: