(loc="upperleft")
()
In[15]:data_show( )
图6-4
利用sklearn提供的感知器,对抽取出的数据进行学习。学习过程一共迭代10次,学习速率设定为0.1。
In[16]:flower_classifier=Perceptron(n_iter=10,eta0=0.1)
In[17]:flower_classifier.fit(flower_shape,flower_class)
Out[17]:
Perceptron(alpha=0.0001,class_weight=None,eta0=0.1,fit_interce
pt=True,n_iter=10,n_jobs=1,penalty=None,random_stat
e=0,shuffle=True,verbose=0,warm_start=False)
学习完毕后,计算学习结果的准确率。可以看到准确率为100%(1.0)。这表明,学习结束后得到的模型在这个数据集上的分类准确率是100%,也就是对这些数据可以给出完全正确的分类。通常应该把数据集划分为训练集和检测集,通过训练集学习,再通过检测集评估结果。在这个案例中没有把数据划分为两个部分。一是因为这个问题比较简单,二是可用的数据较少。
In[18]:accuracy=flower_classifier.score(flower_shape,flower_class)
In[19]:print(accuracy)
1.0
可以定义一个绘图函数,来显示这个分类器的决策边界。结果显示如图6-5所示。
In[20]:defplot_decision_regions(x,y,classifier,resolution=0.2):
markers=('s','x','o','^','v')
colors=('red','blue','lightgreen','gray','cyan')
listedColormap=ListedColormap(colors[:len(np.
unique(y))])
x1_min=0
x1_max=8
x2_min=0
x2_max=6
new_x1=(x1_min,x1_max,resolution)
new_x2=(x2_min,x2_max,resolution)
xx1,xx2=(new_x1,new_x2)
z=(([(),xx2.
ravel()]).T)
z=()
(xx1,xx2,z,alpha=0.4,camp=listedColor
map)
((),())
((),())
foridx,c1inenumerate((y)):
(x=x[y==c1,0],y=x[y==c1,1],alpha=0.8,
c=listedColormap(idx),marker=markers[id
x],label=c1)
In[21]:defdecision_regions_show():
