用4x+5y=2000作为分界线制造了100个点;
初始分界线为0,0;
经过1000轮纠正后,结果是:
22 x+31 y = 11876
对比结果4 x + 5 y = 2000
还是比较接近的。
 
刚开始更新w的那行代码搞错了,以为是用predict去纠正,其实应该用sample的真实值去纠正。
 
import random;

def find_split(points):    w=(0,0,0)    for _ in range(1,2000):        print 'w='+str(w);        for pt in points:            (x1,x2,z) = pt;            (w1,w2,w3)=w;            predict = int((w1+w2*x1+w3*x2)>0)*2-1            if predict!=z:                print 'wrong: '+str(pt)                w=(w1+z,w2+z*x1,w3+z*x2);                # break;            else:                print 'right: '+str(pt)    return w;
def test_split(points,w):    points_2 = filter(lambda pt:((int(w[0]+w[1]*pt[0]+w[2]*pt[1])>=0)*2-1)==pt[2],points)    return points_2;
def init_points(max_x,max_y,num_of_pts):    points=[];    for i in range(1,num_of_pts,1):        x = int(random.random()*max_x);        y = int(random.random()*max_y);        z = int((4*x+5*y)>=2000)*2-1        points.append((x,y,z));    return points;

if __name__ == '__main__':    points = init_points(400,500,100);    print points;    line = find_split(points);    print(line);    pts = test_split(points,line);    print points;    print len(pts);

转载于:https://www.cnblogs.com/alphablox/p/5793041.html

手写一个机器学习的入门算法-感知器算法相关推荐

  1. 如何手写一个支持H.265的高清播放器

    概述 音视频编解码技术在当前的互联网行业中十分热门,特别是高清视频播放器的开发,其中包括4K.8K等超高清分辨率的播放器,具有极高的市场需求和广泛的应用场景.H265编码技术更是实现高清视频压缩的重要 ...

  2. c语言实现感知器算法,感知器算法(c语言版).doc

    感知器算法(c语言版).doc includestdio.hincludetime.hdefine C 1void mainint i,j,k,N1,N2,x202,s3,d20,array204,w ...

  3. 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题

    本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...

  4. 感知器算法及python实现

    这边建议异步到第二版感知器算法及其python 实现 V2.0,训练速度更快,数据集更直观. 第一版写的还是太过粗糙. 感知器算法及python实现 通俗来讲,感知器算法可以完成如下这类线性可分的二分 ...

  5. 感知器算法及其Matlab实现

    感知器算法 感知器算法适用于线性可分情况,其数学表达式为:G(X)=WTXG(X)=W^TXG(X)=WTX 其中W是权向量,X是样本集合.感知器算法的问题在于如何求解权向量,我们可以通过已预分类的训 ...

  6. 感知器算法例题ppt_感知器算法.ppt

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp数据结构与算法 感知器算法.ppt14页 本文档一共被下载:次, ...

  7. 利用MATLAB实现感知器算法

    利用MATLAB实现感知器算法 % 感知器算法 clc;clear;close all; [Number,X11,X12,X21,X22]=textread('data2.txt','%f%f%f%f ...

  8. 深度学习笔记:手写一个单隐层的神经网络

    出处:数据科学家养成记 深度学习笔记2:手写一个单隐层的神经网络 笔记1中我们利用 numpy 搭建了神经网络最简单的结构单元:感知机.笔记2将继续学习如何手动搭建神经网络.我们将学习如何利用 num ...

  9. Chat Top10 | 给面试官手写一个 Nacos,多少 K?

    每周推荐的最新 Chat Top10 没有固定主题,仅仅是编辑部参考多方评分和反馈挑选出来的好文章,不一定适合你的口味,建议小心食用- 我们一起看下第三期 Chat Top10 都有哪些内容 ???? ...

最新文章

  1. ps用法linux,在linux上使用ps(转载)
  2. 面试官:支撑日活百万用户的高并发系统,应该如何设计其数据库架构?
  3. Java反射机制demo(四)—获取一个类的父类和实现的接口
  4. flask 注册路由和蓝图
  5. sql xp_cmdshell
  6. 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)...
  7. python中网页关闭再打开_Python Selenium 之关闭窗口close与quit的方法
  8. 获取所有汉字与 Unicode 的对照表
  9. 菜鸟学做——三层交换综合模拟实验【1】
  10. (对拍配套)随机生成数据
  11. 利用.jou文件将建筑shp文件导入Gambit方法
  12. 如何下载微信视频号里的完整视频?
  13. pod 排错----Pod 一直处于 Pending 状态
  14. 如何使用Yii2编程:Google身份验证
  15. 【区块链】Web3.0黑话合集:区块链/Token等专业术语
  16. 翻译图片中文字的网站
  17. CVPR 2022 | 提高小数据集利用效率,复旦等提出分层级联ViT网络
  18. TVYJ1172 自然数拆分Lunatic版(完全背包问题)
  19. 高中计算机会考vb试题,信息技术高中会考VB模块操作题试题库
  20. 怎么人像抠图?这几种抠图方法一看就会

热门文章

  1. ASP.NET Core 2.0和Angular 4:从头开始构建用于车辆管理的Web应用程序
  2. Odoo10参考系列--Odoo指导方针
  3. spring security oauth2_SpringBoot2 整合OAuth2实现统一认证
  4. 徐汉字java字符_汉字徐的拼音部首-汉字徐的笔画和解释-汉字徐在线查新华字典...
  5. 安卓微信下video退出视频全屏方法
  6. mysql数据库表子查询语句_MySQL使用子查询教程
  7. mysql增删查改总结_MySQL2 数据增删改查 SQL总结
  8. docker公共存储库_Docker Hub镜像公共仓库使用
  9. 重庆大学微型计算机基础实验,计控课程方案设计书.doc
  10. eclipse maven配置_Gradle学习记录015 声明仓库,检查依赖,管理依赖的配置