首页 > 编程语言 >【模式识别】判别函数和感知机算法

【模式识别】判别函数和感知机算法

时间:2022-12-25 14:33:08浏览次数:45  
标签:tmp cnt lind 模式识别 判别函数 len 感知机 np X1

给定两个类别的一共8个样本,通过感知机算法求解判别函数

def bi_perception():
    X1 = np.array([
        [0, 0, 0],
        [1, 0, 0],
        [1, 0, 1],
        [1, 1, 0]
    ])
    X2 = np.array([
        [0, 0, 1],
        [0, 1, 1],
        [0, 1, 0],
        [1, 1, 1]
    ])
    # 增广
    X1 = np.concatenate((X1, np.ones((len(X1), 1))), axis=1)
    X2 = np.concatenate((X2, np.ones((len(X2), 1))), axis=1)
    X1 = np.concatenate((X1, -X2), axis=0)
    C = 1
    w = np.zeros(X1.shape[1])
    # w = np.array([-1., -1., 1., 1.])
    cnt = 0
    ind = 0
    np.random.shuffle(X1)
    while cnt < len(X1):
        cnt = 0
        for dat in X1:
            print(dat, '·', w, '=', np.matmul(dat, w))
            if np.matmul(dat, w) <= 0:
                w += C*dat
            else:
                cnt += 1
        ind += 1
    print("迭代次数:", ind)
    print("return w=", w)

算得:

迭代次数: 3
return w= [ 2. -2. -2.  1.]

即$d(x)=2x_1-2x_2-2x_3+1$

给定三个类别的各1个样本,通过感知机算法求解判别函数

def tri_perception():
    X = np.array([
        [-1, -1],
        [0, 0],
        [1, 1]
    ])
    X = np.concatenate((X, np.ones((3, 1))), axis=1)
    w = np.zeros((3, X.shape[1]))
    c = 1
    ind = 0
    cnt = 0
    while cnt < len(X)-1:
        print(w)
        tmp = np.zeros(len(X))
        lind = ind % 3
        for i in range(len(tmp)):
            tmp[i] = c*np.matmul(w[i], X[lind])
        for i in range(len(tmp)):
            tmp[i] = tmp[lind]-tmp[i]
            if tmp[i] > 0 and i != lind:
                cnt += 1
        if cnt == len(X)-1:
            continue
        for i in range(len(X)):
            if i == lind:
                w[i] += X[lind]
            else:
                w[i] -= X[lind]
        cnt = 0
        ind += 1
    print(w)

算得:

W=[[-2. -2. -1.]
 [ 0.  0. -1.]
 [ 2.  2. -1.]]

$d_1(x)=-2x_1-2x_2-1$

$d_2(x)=-1$

$d_3(x)=2x_1+2x_2-1$

标签:tmp,cnt,lind,模式识别,判别函数,len,感知机,np,X1
From: https://www.cnblogs.com/zhaoke271828/p/17004009.html

相关文章

  • 感知机模型
    感知机模型本内容为《统计学习方法》学习笔记,会不定时更新  感知机模型是一个非常简单的线性机器学习分类器,其定义为:不过其有一个非常苛刻的前提——输入样本需要满足线......
  • 模式识别,模式识别识的啥
    很多自动化专业的学生在报考的时候都想报考模式识别。你问他为什么要考这个,他可能会说这是最接近人工智能的,或者说这是搞人工智能的。有一次一个家长深夜给我打电话说:“......
  • 模式识别,模式识别70年学科发展报告基础篇
    模式识别学科发展报告头版模式识别国家重点实验室编写中国科学院学科发展战略研究项目成果 该报告摘录了最近50项重要研究进展未来30个重要研究问题 分模式识别......
  • 每天进步一点点《ML - 感知机》
    一些前提的约定,还是沿用上篇文章的哈。先来致敬下男神。一:感知机感知机是一种线性二分类模型,其目的是找到能将训练数据线性可分的分离超平面。超平面线性模型为联想起之前......
  • 技术架构领域的智能感知机会
    对智能感知的定义:更聪明的感知,通过引入新技术、人工智能,做到:感知范围全面,感知波动精细,知道影响根因,能抽象出实际业务架构图...。智能感知关键工作:感知影响范围;感知波动......
  • 构造感知机
    大江东去,浪淘尽,千古风流人物……我不知道未来的黑洞会将我拽入何方,但是滚滚长江却毕竟向东流去,尽可能的去挖掘不同的东西,看看到底自己适合什么。2018年已经接近尾声了,有......
  • python感知机
    感知机是一种二类分类的线性分类器,属于判别模型(另一种是生成模型)。简单地说,就是通过输入特征,利用超平面,将目标分为两类。感知机是神经网络和支持向量机的基础。现实过程如......
  • 感知机
    感知机(Perceptron)背景由美国学者FrankRosenblatt在1957年提出,是神经网略的起源算法。定义感知机接收多个输入信号,输出一个信号。信号只有0/1两种取值。组成元素......
  • 感知机、逻辑回归、损失函数
    1、感知机是一种简单的线性二分类模型,是神经网络的基础。有x1,x2,...xn个输入,所有的输入会进入到神经元,在神经元中,每个输入x都会与之对应的权重参数wi相乘,在计算所有输入信......
  • 第2章 入门必修:单、多层感知机
     2-1本章内容介绍  2-2深度学习实施的一般过程    前两步可能占掉百分之七十的时间 2-3逻辑回归  2-4逻辑回归损失函数     ......