感知机学习算法Java实现。

Perceptron类用于实现感知机,

其中的perceptronOriginal()方法用于实现感知机学习算法的原始形式;

perceptronAnother()方法用于实现感知机学习算法的对偶形式(此处仍有bug)。

import java.util.Scanner;

public class Perceptron {

private static final int maxn = 1010;

private static final int maxm = 101;

private static double[][] x = new double[maxn][maxm];

private static double[] y = new double[maxn];

private static int N = 0;

private static int M = 0;

private static double phi = 0.1;

private static double[] w = new double[maxm];

private static double b = 0;

private static double[] alpha = new double[maxn];

private static double[][] G = new double[maxn][maxn];

private static void perceptronOriginal() {

for(int i=0;i

b = 0;

boolean ok = true;

while(ok) {

ok = false;

for(int i=0;i

double tmp = 0;

for(int j=0;j

tmp += b;

if(tmp * y[i] <= 0) {

ok = true;

for(int j=0;j

b += phi * y[i];

}

}

}

}

private static void beforePerceptronAnother() {

for(int i=0;i

for(int j=i;j

for(int k=0;k

G[i][j] = x[i][k] * x[j][k];

for(int i=0;i

for(int j=0;j

G[i][j] = G[j][i];

}

public static void perceptronAnother() { // has bug

beforePerceptronAnother();

for(int i=0;i

b = 0;

boolean ok = true;

while(ok) {

ok = false;

for(int i=0;i

double tmp = 0;

for(int j=0;j

tmp += alpha[j] * y[j] * G[j][i];

tmp += b;

if(y[i] * tmp <= 0) {

ok = true;

alpha[i] += phi;

b += phi * y[i];

System.out.println("alpha[" + i + "]:" + alpha[i] + ",b:" + b);

}

}

}

phi *= 0.9;

}

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.print("input N: ");

N = in.nextInt();

System.out.print("input M: ");

M = in.nextInt();

System.out.println("input x:");

for(int i=0;i

for(int j=0;j

x[i][j] = in.nextDouble();

System.out.println("input y(y={-1,+1}):");

for(int i=0;i

y[i] = in.nextDouble();

System.out.println("perceptron original......");

perceptronOriginal();

for(int i=M-1;i>=0;i--)

System.out.println("w" + i + ":" + w[i]);

System.out.println("b:" + b);

System.out.println("perceptron another......");

perceptronAnother();

for(int i=0;i

for(int i=0;i

for(int j=0;j

w[j] += alpha[i] * y[i] * x[i][j];

}

}

for(int i=M-1;i>=0;i--)

System.out.println("w" + i + ":" + w[i]);

System.out.println("b:" + b);

}

}

感知机学习算法 python实现

参考李航 一开始的感知机章节,看着不太复杂就实现一下... """ 感知机学习算法的原始形式 例2.1 """ ...

【机器学习】感知机学习算法(PLA)

感知机问题学习算法引入:信用卡问题 根据已知数据(不同标准的人的信用评级)训练后得出一个能不能给新客户发放信用卡的评定结果 解决该问题的核心思想扔为之前所讲到的梯度下降算法,对于更多条件的类似问题,首 ...

感知机学习算法(PLA)

Perception Learning Algorithm, PLA 1.感知机 感知机是一种线性分类模型,属于判别模型. 感知机模型给出了由输入空间到输出空间的映射: f(X) = sign(WTX ...

利用Python实现一个感知机学习算法

本文主要参考英文教材Python Machine Learning第二章.pdf文档下载链接: https://pan.baidu.com/s/1nuS07Qp 密码: gcb9. 本文主要内容包括利 ...

吴裕雄 python 机器学习——人工神经网络感知机学习算法的应用

import numpy as np from matplotlib import pyplot as plt from sklearn import neighbors, datasets from ...

归并排序算法 java 实现

归并排序算法 java 实现 可视化对比十多种排序算法(C#版) [直观学习排序算法] 视觉直观感受若干常用排序算法 算法概念 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Di ...

java虚拟机学习-触摸java常量池&lpar;13-1&rpar;

java虚拟机学习-深入理解JVM(1) java虚拟机学习-慢慢琢磨JVM(2) java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制 java虚拟机学习-JVM内存管理:深 ...

CS229 Lesson 5 生成学习算法

课程视频地址:http://open.163.com/special/opencourse/machinelearning.html 课程主页:http://cs229.stanford.edu/ 更 ...

&lbrack;C&num;&rsqb;&lbrack;算法&rsqb; 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

随机推荐

BZOJ-1207 打鼹鼠 DP(LIS)

1207: [HNOI2004]打鼹鼠 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2276 Solved: 1116 [Submit][Statu ...

【剑指offer】面试题41:和为 s 的两个数字 VS 和为 s 的连续正数序列

题目: 输出所有和为S的连续正数序列.序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 思路: small代表序列最小数字,large代表序列最大数字.初始化small为1,large为2. ...

Could not roll back JDBC transaction途径

[异常]接口数量:DM02;错误代码:ERR_EAI_02_014; 错误叙述性说明:当将中间库异常Could not roll back JDBC transaction; nested excep ...

(四)—性能测试工具curl-loader&lpar;linux&rpar;

curl-loader介绍 curl-loader(也被称为"omes-NIK"和"davilka")是一个开源的C语言编写的工具,模拟应用负载和成千上万的几十 ...

原生JavaScript如何解决父元素查找指定类名的子元素的问题

问题:已知一个元素的类名是right并且这个元素的祖先元素的类名为parent,现在想通过原生JavaScript获得这个类名为right的元素. 我的思路:利用递归.先判断已知的祖先元素(题中的pa ...

HTTPS通信原理

https的实现原理https用到了多种加密算法来实现通信安全,其中两种基本的加解密算法类型解释如下:(1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES ...

tenserflow models包的安装 123

1.下载 models包 https://github.com/tensorflow/models 2.将models包拷贝到本机Python包的安装地址即可,本机Python包的安装地址的查看方式可 ...

如何撤回经由Outlook2016刚发出的邮件

在Outlook2016中,刚发出了一封邮件,发现有问题,想撤回,如何处理? 在对方尚未查看和接收时,可撤回. 参考步骤 1.选中这封邮件,用鼠标双击打开 2.点Move旁边的下拉按钮 3.点击&qu ...

java实现一个感知机_感知机学习算法Java实现相关推荐

  1. java编写一个函数_请教如何用java编写一个函数图像生成的应用程序?谢谢!

    展开全部 package math; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayo ...

  2. 多层感知机与深度学习算法概述

    多层感知机与深度学习算法概述 读研之前那会儿我们曾纠结于机器学习.深度学习.神经网络这些概念的异同.现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混-可见深度学习技术的影响力之大.深度学习, ...

  3. java新手的通病_编程随想:Java新手的通病 PDF 下载

    编程随想:Java新手的通病 PDF 下载 下载地址: 提取码:onyi 相关截图: 主要内容: 其实很早以前就想写这样一个文章,可惜当时我没有 Blog,所以到现在才写下来.最近几年,随着 Java ...

  4. dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现

    前言    从本篇开始我们将讲解一些机器学习中常用的算法模型及实现原理,本系列会一直更新,把自己走过的弯路都记录下来,也希望后人学习的过程能更顺畅一点. 正文 感知机的理解  感知机属于机器学习算法中 ...

  5. 机器学习知识点(七)决策树学习算法Java实现

    为理解机器学习第四章节决策树学习算法,通过网上找到的一份现成代码,主要实现了最优划分属性选择和决策树构造,其中最优划分属性选择采用信息增益准则.决策树构造采用递归实现,代码如下: package sk ...

  6. 图像 引言 深度学习_深度学习算法对磁共振图像序列的识别

    本文内容.图片与涉及的源码均为作者原创,未经许可不得转载.版权声明或联系作者请移步 "关于" 前言 面对大数据和人工智能,已经跨过门槛的各路小伙伴们利用深度学习算法不断的炼丹,都已 ...

  7. 指令流水 一个时钟周期 出一个结果_以SM3算法为例,构建一个软硬协作算法加速器:性能分析与优化...

    衡量一款 ASIC 芯片可以从 PPA 三个角度进行. PPA 指的是: Power/Performance/Area,功耗 / 性能 / 面积. 衡量 FPGA 设计同样可以参照 PPA,但又有所不 ...

  8. java正则表达式判断手机号_正则表达式学习之简单手机号和邮箱练习

    正则表达式的组成规则 在java中,正则表达式的编译是类 java.util.regex.Pattern 正则表达式的构造摘要 1.字符x 包括所有大写和小写字母.所有数字.所有标点符号和一些其他符号 ...

  9. 深度学习算法_深度学习算法

    人工智能领域广泛,存在时间较长.深度学习是机器学习领域的一个子集,而机器学习是人工智能领域的一个子集.一般将深度学习网络与"典型"前馈多层网络从如下方面进行区分: 深度学习网络具有 ...

最新文章

  1. 独家 | 如何全面解析数据并创造数据故事
  2. 1-编程的基本条件和起步
  3. 【搜索引擎基础知识2】网络爬虫
  4. 传智168期JavaEE struts2杜宏 day32~day33(2017年2月15日23:27:09)
  5. 从零开始学Java编程!java集合类详解和使用
  6. Screen Painter 程序设计
  7. 【Fiddler篇】FreeHttp无限篡改http报文数据调试和mock服务
  8. 配置oracle odbc驱动,oracle odbc driver configuration
  9. MATLAB语音识别
  10. 单片机仿真软件Proteus8.0的安装及使用
  11. word文档添加多个目录
  12. android o 结构光流程,结构光光斑图案生成方法和结构光光斑图案生成设备的制造方法...
  13. Cocos2dx开发手机游戏工具集(持续更新)
  14. 7-22 寻找大富翁 (25 分)
  15. sqlite设密工具如何使用(本人资源)
  16. 安全漏洞-报错页面泄露文件路径
  17. android获取手机短信记录,android 获取手机电话号码和短信内容
  18. 多路人脸识别解决方案
  19. 唉 我的libgdx
  20. DNS协议与请求的C语言实现

热门文章

  1. matlab的disp函数如何换行
  2. rsync 服务配置
  3. FLOPS是什么?用于衡量超级计算机的算力
  4. Python|函数递归-sin之舞
  5. IDEA_代码行数统计
  6. 2023年专升本计算机试题及答案(练习)
  7. PA 2019 题解(20/22)
  8. 安装JDK为何要配置环境变量(Java_HOME,Path,CLASSPATH)
  9. 嵌入式系统设计——多线程编程(8)
  10. Maven构建Hadoop工程