4,算法代码

/*************************************************************************> File Name: durl.cpp> Author:zhangtx> Mail: 18510665908@163.com > Created Time: 2018年01月08日 星期一 10时04分10秒************************************************************************/
#include <iomanip>
#include<iostream>
using namespace std;
int a[3]={0,0,0};
int b=0;
int ep=1;
int samples[3][3]={{3,3,0},{4,3,0},{1,1,0}};
int y[3]={1,1,-1};
int TransSamples[3][3];
int gram[3][3];
void TransposeMatrix(int matrixSrc[][3],int matrixDest[][3],int row,int col)
{for(int idxRow=0;idxRow<row;idxRow++)for(int idxCol=0;idxCol<col;idxCol++)matrixDest[idxCol][idxRow]=matrixSrc[idxRow][idxCol];
}void MultiMatrix(int matrixLeft[][3],int leftRow,int leftCol,int matrixRight[][3],int rightRow,int rightCol,int result[][3])
{for(int idxLeftRow=0;idxLeftRow<leftRow;idxLeftRow++){for(int idxRightCol=0;idxRightCol<rightCol;idxRightCol++){int sum=0;for(int idxRightRow=0;idxRightRow<rightRow;idxRightRow++){sum+=matrixLeft[idxLeftRow][idxRightRow]*matrixRight[idxRightRow][idxRightCol];}result[idxLeftRow][idxRightCol]=sum;}}
}
void PrintMatrix(int matrix[][3],int row,int col,char *info)
{cout<<endl<<info<<endl;for(int idxRow=0;idxRow<row;idxRow++){cout<<endl;for(int idxCol=0;idxCol<col;idxCol++){cout<<setw(8)<<matrix[idxRow][idxCol];}}cout<<endl;
}int w[2]={0,0
};int main(int argc,char *argv[])
{PrintMatrix(samples,3,3,"samples");TransposeMatrix(samples,TransSamples,3,3);PrintMatrix(TransSamples,3,3,"Transposes");MultiMatrix(samples,3,3,TransSamples,3,3,gram);PrintMatrix(gram,3,3,"result");/*train*/int iterator=0;while(true){bool over=true;iterator++;for(int i=0;i<3;i++){int val=0;for(int j=0;j<3;j++){val+=a[j]*y[j]*gram[j][i];}if (y[i]*(val+b)<=0){cout<<" iterator " <<iterator<<"a:";for(int k=0;k<3;k++){cout<<setw(8)<<a[k];}cout<<"   b"<<setw(10)<<b<<endl;a[i]=a[i]+ep;b=b+y[i];over=false;}}if (over==true){cout<<" iterator " <<iterator<<"a:";for(int i=0;i<3;i++){cout<<setw(8)<<a[i];}cout<<"   b"<<setw(10)<<b<<endl;break;}}for(int i=0;i<2;i++){for(int j=0;j<3;j++)w[i]+=a[j]*y[j]*samples[j][i];}cout<<endl<<"w="<<w[0]<<"  "<<w[1]<<endl;cout<<"the func is "<<w[0]<<"*x1"<<"+"<<w[1]<<"*x2"<<"+("<<b<<")"<<endl;return 0;
} 

感知机算法的对偶形式相关推荐

  1. 感知机算法的两种表示

    感知机算法的原始形式 输入:训练数据集T={(x1,y1),(x2,y2),...,(xn,yn)},其中xi属于Rn(n维空间向量),yi={-1,+1},i=1,2,...,N 学习率t(0< ...

  2. 经典分类算法——感知机算法

    文章目录 经典分类算法--感知机算法 1 感知机算法思想:错误修正 2 感知机算法(原始形式):形式化表示 3 感知机算法(对偶形式):形式化表示 4 感知机算法:随机梯度下降(SGD) 5 感知机算 ...

  3. 感知机算法基础形式及对偶形式算法

    知识预备: 数据线性可分: 对于给定数据集T={(x1,y1),(x2,y2),...,(xn,yn)},:若存在平面wx+b=0将正实例点和负实例点正确划分到两侧,也就是对所有yi=+1的实例,都有 ...

  4. 感知机算法(一)---原理

    感知机算法是错误驱动的在线学习算法.首先初始化一个权重W0.截距b,然后每次分错样本时,就用这个样本改变权重以及截距b.其实就是构造了一个分类超平面. (1)感知机算法的学习策略是极小化误分类点到超平 ...

  5. 感知机算法学习笔记(带例题及代码)

    感知机 感知机是二分类的线性分类模型,其输入为实例的特征向量,输出实例为类别,取+1和-1二值,属于判别模型.感知机学习旨在求出能够将训练数据集进行正确的分类的分离超平面的.为此,导入基于误分类的损失 ...

  6. 通俗解释优化的线性感知机算法:Pocket PLA

    个人网站:红色石头的机器学习之路 CSDN博客:红色石头的专栏 知乎:红色石头 微博:RedstoneWill的微博 GitHub:RedstoneWill的GitHub 微信公众号:AI有道(ID: ...

  7. 一看就懂的感知机算法PLA

    个人网站:红色石头的机器学习之路 CSDN博客:红色石头的专栏 知乎:红色石头 微博:RedstoneWill的微博 GitHub:RedstoneWill的GitHub 微信公众号:AI有道(ID: ...

  8. 【附源码】一看就懂的感知机算法PLA

    AI有道 一个有情怀的公众号 本文所有的源代码均放在了我的GitHub上,需要的点击文末「阅读原文」获取.如果对你有用的话,别忘了Fork和Star哦! 什么是感知机「Perceptron」 PLA全 ...

  9. matlab求感知距离的命令,感知机算法(MATLAB)

    感知机算法属于比较简单的分类器算法,但是跟逻辑回归和支持向量机一样属于构建分类超平面. 不同的是感知机采用分错的样本与分类超平面的距离作为损失函数,下面的算法基于随机梯度下降法,采用异步方式达到收敛状 ...

  10. python 机器学习——从感知机算法到各种最优化方法的应用(python)

    一 准备 1 数据集 2 基本工具 21 pandasread in data 22 numpyprocess data 23 matplotlibvisualize data 二 基本概念与定义 三 ...

最新文章

  1. 程序员眼中的电脑和空调 | 每日趣闻
  2. 使用 Node.js、Express、AngularJS 和 MongoDB 构建一个Web程序
  3. Java项目问题_Java项目出现的问题01----学习
  4. 【JavaWeb】JDBC优化 之 数据库连接池、Spring JDBC
  5. 【HBase】学习笔记
  6. django系列3.3--CBV 和 FBV
  7. 第六章 输入输出系统-作业
  8. shell 除法保留n位小数
  9. MT6573添加新硬件模块驱动方法
  10. sql判断邮箱是否合法_用正则表达式验证邮箱与手机号的合法性
  11. Android常用的开源库收集(持续更新中)
  12. 整合SpringBoot + MybatisPlus 搭建JAVA多模块项目基本骨架
  13. css 去除png图片黑色背景色,css的filter给png图片换色
  14. Ubuntu 18.04 LTS系统主题美化
  15. 2008 go server sql 批处理_SQL Server 让你的数据来去自如——批处理-阿里云开发者社区...
  16. VMware虚拟机桥接方式上网
  17. 纯java pdf转换成html,JAVA实现PDF转HTML文档的示例代码
  18. nginx 跨域。。。掉坑里了,小心
  19. 0903 非常棒的电子学习网站 正弦波电压和电容并联串联的计算
  20. 【C++11 】模板类array对象的使用方法

热门文章

  1. iOS 项目改名~~~~~
  2. java keytool工具详解
  3. Entity Framework 异常档案
  4. PHP 遍历文件夹及文件类及处理类
  5. Windows Server 2008 R2之三十八 Hyper-V的授权管理
  6. 在Xen的DomU中安装MySQL
  7. Java设计person类,有姓名,年龄,性别。要求:该类至多只能创建一男,一女两个对象。
  8. python finally语句里面出现异常_python try except语句出现异常
  9. in作为介词的用法_思维导图:为孩子收藏——常出错的英语用法集锦
  10. linux汇编预处理,Linux程序在预处理、编译、汇编、链接、运行步骤的作用