机器学习 - 感知机算法,python的for循环计算,输出有奇怪的结果
PHPz
PHPz 2017-04-18 09:45:17
0
1
669

自己编了一个感知机算法,前边的输出都没有问题,在第二十次循环的时候,原本结果该是[0.05,0.05,0.15],但是却出现了奇怪的结果
[ 5.00000000e-02 -1.38777878e-17 1.50000000e-01]
后面也有这种输出(x,y也是)
求大神告诉我为啥会出现这个结果呢?

import sys
import numpy as np

def cal(a):
    if a>0:
        o=1
    else: 
        o=0
    return o

input=np.array([[-1,0,0],[-1,0,1],[-1,1,0],[-1,1,1]])
t=np.array([0,0,0,1])
w=np.array([-0.1,-0.2,0.2])
weight=w.transpose()
index=range(3)


count=0
loop=0
while(1):
    for i in range(4):
        loop=loop+1;
        a=input[i]
        x=np.dot(a,weight)
        print 'No loop',loop,'x=',x
        y=cal(x)
        print 'No. loop',loop,'y=',y
        if y==t[i]:
            count=count+1
        else:
            count=0
            for n in range(3):
                weight[n]=weight[n]+0.05*(t[i]-y)*a[n]
            print weight
        if count==4:
            break
    if count==4:
        break
        
aa=np.array([ 0.1,-0.05,0.1]);

for n in range(3):
    aa[n]=aa[n]+0.05*(1-0)*a[n]
print aa
PHPz
PHPz

学习是最好的投资!

全部回覆(1)
梦想无需昭告天下

/**

* 驗證碼類

*/

$code= new Code();

$code->outImage();

class Codeted

{

tected

受保護的$codeType;

受保護的$width;

受保護的$height;

受保護的$image;

受保護的$code;

public函數__construct($number=4,$codeType=2,$width= 100,$height=30)

{

$this->number=$number;

$this->codeType=$codeType;

$this->width=$width;

$this ->height=$height;

$this->code=$this->createCode();

}

公用函數

公用函數){

if ($name=='code' ) {

return $this->code;

}else{

return false;

imagedestroy($ this->image);

}

protected function createCode(){

switch ($this->codeType) {

case '0':switch ($this->codeType) {

cget) ;

case '1':

$code=$this->getCharCode();

break;

case '2':

$code=$

case '2':

$ ;

預設值:

die("對不起,不支援該驗證碼型別!!!");

}

return $code;

}

tec

return $code;

}

) join ('',range (0, 9));

return substr(str_shuffle($str), 0,$this->number);

}

protected function getCharCode(){

}

protected function getCharCode(){

}

protected ( '',range (a, z));

$str=$str.strtoupper($str);

return substr(str_shuffle($str), 0,$this->number);

}

protected function getNumberCharCode (){

$str1=join('',range(0, 9));

$str=join('',range(a, z));

$strstr=$str=join('',range(a, z));

$str=$str1 . $str。 strtoupper($str);

return substr(str_shuffle($str); this->fillBack();

$this->drawChar();

$this->drawDistrub();

$this->show();

}

受保護函式

$this->image=imagecreatetruecolor($this->width, $this->height);

}

protected function fillBack(){

imagefill($this->, this > 0, $ $, this- > lightColor());

}

受保護函數lightColor(){

        return  imagecolorallocate($this->image, mt_rand(130,255), 155($

}

protected function darkColor(){

return  imagecolorallocate($this->image, mt_rand(0,120), mt_rand(0,120), mt_rand(0,120));

}

}

0; $i 數字; $i++) { 

$Width=$this->寬度/$this->數字;

$x=mt_rand($i*$Width+10,($i+1)*$Width-15);

$y=mt_rand(0,$this->height-18);

imagechar( $ this->image, 6, $x, $y, $this->code[$i], $this->darkColor());

}

}

受保護函數drawDistrub(){

for

for

for ( $i=0; $i

$x=mt_rand(0,$this->寬度);

$y=mt_rand(0,$this->寬度);

$ y =mt_rand(0,$this->寬度) height);

imagesetpixel($this->image, $x, $y, $this->lightColor());

}

}

show (){

header("內容-類型:image/png");

imagepng($this->image);

}

}🎜🎜?>🎜🎜 }🎜🎜
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!