PLA在Python下的简单实现

代码部分:(详细解释在代码中都有)

import numpy as np

from numpy import *

 

 

def pla():

    W=np.ones(3)#初始化所有权重为1

    count=0

# 这里定义x0到x2,其中公式证明出来x0衡等于1,不解释

# 自己构建六个可分割的二维坐标

dataset=[[1,0.107,0.643 ,1],

            [1 ,0.241, 0.830 ,1],

            [1 ,0.233 ,0.810, 1],

            [1 ,0.361, 0.143, -1],

            [1, 0.469, 0.321, -1],

            [1, 0.859, 0.272, -1],

            ]

# 循环一次后如果有差错的点进入下一次循环

  while True:

        count+=1

        iscompleted=True

# 采用视频所说的每一次循环所有的点,出现差错就改

 fori in range(0,len(dataset)):

# x取到倒数第一个,然后最后一个作为y的值

  X=dataset[i][:-1]

            Y=np.dot(W,X)#矩阵相乘

# 计算出的结果和最后一个y值做对比

 ifsign(Y)==sign(dataset[i][-1]):

                continue

            else:

                iscompleted=False

# 如果出错的话,做后一个根据视频中公式w=w+yx

W=W+(dataset[i][-1])*np.array(X)

# 如果本次循环一个点都没有出错的话把最终权重输出

   ifiscompleted:

            break

 print("final W is :",W)

    print("count is :",count)

    return W

w = pla()

数据部分的六个点为个人在二维坐标系上找到的六个可分割的点。在pla上跑一次之后得到的最终权重和训练轮数

训练了五轮。

机器学习基石中的PLA的实现相关推荐

  1. 台湾大学林轩田教授机器学习基石课程理解及python实现----PLA

    最近在班主任的带领下,开始观看台湾大学林轩田教授的机器学习基石课程,虽然吧,台湾人,汉语说得蛮6,但是还是听着怪怪的,不过内容非常值得刚刚入门的机器学习 小白学习,话不多说,直接进入正题. 1.基本介 ...

  2. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  3. 台湾大学林轩田机器学习基石课程学习笔记12 -- Nonlinear Transformation

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了分类问题的三种线性模型,可以用来解决binary classification和multiclass classificati ...

  4. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  5. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  6. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

    红色石头的个人网站:redstonewill.com 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候, ...

  7. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

  8. 台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使 ...

  9. 台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No

    红色石头的个人网站:redstonewill.com 上节课,我们主要简述了机器学习的定义及其重要性,并用流程图的形式介绍了机器学习的整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最 ...

最新文章

  1. async spring 默认线程池_springboot-@Async默认线程池导致OOM问题
  2. Maven 排除依赖jar包
  3. cmake 入门学习
  4. 工资表 车辆工程 冯大昕
  5. 关于haproxy的重定向
  6. javascript中判断对象是否为空几种场景
  7. Android Studio无线连接设备调试,比数据线更方便
  8. 嵌入式C语言自我修养 08:变参函数的格式检查
  9. mysql json数组拆分表_MaxCompute将json数组拆分成多行
  10. no identity found Command /usr/bin/codesign failed with exit code 1 报错解决方法
  11. 谷歌浏览器Chrome developer tool详细介绍
  12. ectouch2.0 php5.5_Ectouch2.0 分析解读代码审计流程
  13. 二年级课程表(4月2日-4月8日)
  14. 浅谈计算机网络发展方向,浅谈计算机网络的发展方向
  15. 【已解决】抖音如何取消关注已注销的账户
  16. 小丽和小张 --- 作者:歪瓜裂枣
  17. 98大水灾,各国各地区对我国的捐助一览表
  18. 简单证明圆锥体积为三分之一圆柱
  19. 一文带你秒懂数据结构与算法的三大要素、五大特征!
  20. 百度android 定位返回161,重拾百度定位之踩坑篇(下)

热门文章

  1. iOS Https 服务器证书无效
  2. pyqt 界面卡顿 解决办法 多线程
  3. H5游戏开发代码总结
  4. 快速收集人员健康信息、春节去向记录,一张收集表就够了
  5. 富士通服务器 css灯亮,富士通空调通信故障
  6. 京东/京粉/京东联盟商品查返利转返利链接接口API
  7. chatgpt赋能python:如何在Python中取消换行?
  8. 《人工智能》之语音识别小记
  9. Leetcode算法类型训练
  10. onlyoffice 回调传参数_【onlyoffice中文指南】9-回调处理程序