为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

2 回答

```

import numpy as np

class perceptron(object):

    """

    eta :学习率

    n_iter: 权重向量的训练次数

    w_: 神经分叉权重向量

    errors_: 用于记录神经元判断出错次数

    """

    def _int_(self,eta=0.01,n_iter=10):

        self.eta=eta;

        self.n_iter=n_iter;

        pass

    def fit(self,x,y):

        """

        输入训练数据,培训神经元,x输入样本向量,y对应样本分类

        x:shape[n_samples,n_features]

        x:[[1,2,3],[4,5,6]]

        n_samples: 2 (输入样本量)

        n_features:3 (输入的信号有多少个)

        

        y:[1,-1]

        """

        """

        初始化权重向量为0

        

        """

        self.w_=np.zero(1+x.shape[1]);

        self.errors_=[]

        

        """

        训练次数循环

        """

        for _ in range(self.n_iter):

            errors =0

            """

            x:[[1,2,3],[4,5,6]]

            y:[1,-1]

            zip(x,y)=[[1,2,3,1],[4,5,6,-1]]

            """

            for xi,target in zip(x,y):

                """

                update=η*(y-y')

                """

                update =self.eta*(target-self.predict(xi))

                """

                xi 是一个向量

                self.w_[1:]+=update*xi等价:

                [▽w(1)=x[1]*update,▽w(2)=x[2]*update,▽w(3)=x[3]*update,]

                """

                self.w_[1:]+=update*xi

                self.w_[0]+=update;

                errors+=int(update !=0.0)

                self.errors_.appand(errors)

                pass

            

            pass

        def net_input(self,x):

            """

            z= W0*1+ W1*X1+ ....Wn*Xn

            """

            return np.dot(x,self.w_[1:])+self.w_[0]

            pass

        def predict(self,x):

            return np.where(self,net_input(x)>=0.0,1,-1)

        pass

```

1 回复 有任何疑惑可以回复我~

没有下载!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码没有地方下载吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信