梯度下降法(固定增量法、感知器算法)

import numpy as np  # 数组运算工具
from fileUtil import FileUtil
from mathUtil import MathUtil


w1=[[0,0],[0,1]]
w3=[[1,0],[1,1]]

# 1.初始化数据
w1 = MathUtil.extend(w1)
w3 = MathUtil.extend(w3)  #增广化并转为矩阵
w3 = MathUtil.SN(w3)    #符号规范化
x = w1+w3
k = 1
rho = 1
w = np.mat([1, 1, 1])
w = np.transpose(w)
f = 1
# 2.计算判别函数值并调整
while f:
    f = 0
    for i in range(x.__len__()):
        print(k)
        k+=1
        wt = np.transpose(w)
        d = wt*x[i]
        if d <= 0:
            w = w+(x[i]*rho)
            f = 1

import math
import numpy as np

class MathUtil:

    # 计算欧式距离
    @staticmethod
    def ED(x,y): 
        sum = 0
        for i in range(x.__len__()):
            sum += (x[i]-y[i])**2
        return math.sqrt(sum)

    # 增广化并转为矩阵
    @staticmethod
    def extend(x):
        for i in range(x.__len__()):
            x[i].append(1)
            x[i]=np.mat(x[i])
            x[i]=np.transpose(x[i])
        return x        

    # 符号规范化
    @staticmethod
    def SN(x):
        for i in range(x.__len__()):
            x[i]=x[i]*-1
        return x    

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值