test

原创 2015年07月07日 19:45:07

import numpy as np
import pylab as pl

b=1              #偏置
a=0.3            #学习率
x=np.array([[b,1,3],[b,2,3],[b,1,8],[b,2,15],[b,3,7],[b,4,29],[b,4,8],[b,4,20]])   #训练数据
d=np.array([1,1,-1,-1,1,-1,1,-1])                                      #训练数据类别
w=np.array([b,0,0])                                            
<span style="font-family:Courier New;">import numpy as np
import pylab as pl
b=1              #偏置
a=0.3            #学习率
x=np.array([[b,1,3],[b,2,3],[b,1,8],[b,2,15],[b,3,7],[b,4,29],[b,4,8],[b,4,20]])   #训练数据
d=np.array([1,1,-1,-1,1,-1,1,-1])                                      #训练数据类别
w=np.array([b,0,0])                                               #初始w
def sgn(v):                                 
    if v>=0:
        return 1
    else:
        return -1
def comy(myw,myx):
    return sgn(np.dot(myw.T,myx))
def neww(oldw,myd,myx,a):
    return oldw+a*(myd-comy(oldw,myx))*myx

for ii in range(5):                                #迭代次数
    i=0
    for xn in x:
        w=neww(w,d[i],xn,a)
        i+=1
    print(w)

myx=x[:,1]                                    #绘制训练数据
myy=x[:,2]
pl.subplot(111)
x_max=np.max(myx)+15
x_min=np.min(myx)-5
y_max=np.max(myy)+50
y_min=np.min(myy)-5
pl.xlabel(u"x")
pl.xlim(x_min,x_max)
pl.ylabel(u"y")
pl.ylim(y_min,y_max)
for i in range(0,len(d)):
    if d[i]==1:
        pl.plot(myx[i],myy[i],'r*')
    else:
        pl.plot(myx[i],myy[i],'ro')
#绘制测试点
test=np.array([b,9,19])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,64])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,16])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,60])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
#绘制分类线
testx=np.array(range(0,20))
testy=testx*2+1.68
pl.plot(testx,testy,'g--')
pl.show()   
for xn in x:
    print("%d  %d => %d" %(xn[1],xn[2],comy(w,xn))) </span>

  #初始w
def sgn(v):                                 
    if v>=0:
        return 1
    else:
        return -1
def comy(myw,myx):
    return sgn(np.dot(myw.T,myx))
def neww(oldw,myd,myx,a):
    return oldw+a*(myd-comy(oldw,myx))*myx


for ii in range(5):                                #迭代次数
    i=0
    for xn in x:
        w=neww(w,d[i],xn,a)
        i+=1
    print(w)


myx=x[:,1]                                    #绘制训练数据
myy=x[:,2]
pl.subplot(111)
x_max=np.max(myx)+15
x_min=np.min(myx)-5
y_max=np.max(myy)+50
y_min=np.min(myy)-5
pl.xlabel(u"x")
pl.xlim(x_min,x_max)
pl.ylabel(u"y")
pl.ylim(y_min,y_max)
for i in range(0,len(d)):
    if d[i]==1:
        pl.plot(myx[i],myy[i],'r*')
    else:
        pl.plot(myx[i],myy[i],'ro')
#绘制测试点
test=np.array([b,9,19])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,64])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,16])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')
test=np.array([b,9,60])
if comy(w,test)>0:
    pl.plot(test[1],test[2],'b*')
else:
    pl.plot(test[1],test[2],'bo')

#绘制分类线


testx=np.array(range(0,20))
testy=testx*2+1.68
pl.plot(testx,testy,'g--')
pl.show()   
for xn in x:
    print("%d  %d => %d" %(xn[1],xn[2],comy(w,xn))) 

相关文章推荐

Mybatis 使用<if test/>实现选择插入

最近遇到需要需要根据 areaId的范围进行插入,在使用中使用when test实现数据范围选择,之前在test中使用 大于号 > 是没有问题的,例如于是根据编程的想法,就写了这个结果编译出错,说My...

C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。

题目:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。 下面是我写的程序源代码,我通过VS2010,编译通过,运行正常。 ...
  • abzbi
  • abzbi
  • 2012年08月21日 13:46
  • 27871

eclipse下maven项目构建后src/test/java下的java文件始终是处于未编译状态的处理

我简单说一下,我构建项目的大概过程: 1.项目copy到自己eclipse的workspace 2.在eclipse中,file--import--输入maven,选择第二个选项--找到你的项目目...

VS2008或以上版本的ActiveX控件的测试工具(ActiveX Control Test Container)编译记录

最近有个项目需要提供64位OCX资源给客户,但是客户没有给出测试环境,需要自己先内部测试。但是64位的IE怎么也调不到64位的OCX,没办法,只好另辟蹊径使用IDE自带的TstCon32.exe(Ac...

Google Test 测试架构探究

原文地址:点击打开链接 Google Test 测试架构探究     得益于和萱哥关于单元测试的聊天,让我开始想要了解Google的单元测试框架Google Test,(虽然以...

Windows Mobile Test Framework实现手机软件自动化测试的介绍

摘要:本文就Windows Mobile Test Framework(WMTF)自动化测试做了比较详细的介绍,它介绍了WMTF的由来,获取,测试环境的搭建,以及如何创建软件自动化测试工程的Abstr...

shell测试和比较函数--test、[、[[、((、和 if-then-else

Bash shell 在当今的许多 Linux® 和 UNIX® 系统上都可使用,是 Linux 上常见的默认 shell。Bash 包含强大的编程 功能,其中包括丰富的可测试文件类型和属性...
  • sf_lsy
  • sf_lsy
  • 2011年02月12日 14:39
  • 931

玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言

【转自】http://www.cnblogs.com/coderzh/archive/2009/04/06/1430364.html 一、前言 这篇文章主要总结gtest中...
  • xth6314
  • xth6314
  • 2014年03月07日 22:38
  • 434

Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass

Junit中集中基本注解,是必须掌握的。 @BeforeClass– 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意public s...

处理生成VOC的数据格式的test.txt train.txt trainval.txt val.txt 和SSD的imdb数据格式以及ssd的训练

VOC的数据格式就是在VOC文件夹下:准备三个文件夹 1、 Annotations里面放标注好的xml文件使用的这个工具, 参考http://blog.csdn.net/jesse_mx/articl...
  • Bankeey
  • Bankeey
  • 2017年08月02日 20:11
  • 799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:test
举报原因:
原因补充:

(最多只允许输入30个字)