java实现一个感知机_感知机学习算法Java实现
感知机学习算法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常量池(13-1)
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/ 更 ...
[C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]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(linux)
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实现相关推荐
- java编写一个函数_请教如何用java编写一个函数图像生成的应用程序?谢谢!
展开全部 package math; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayo ...
- 多层感知机与深度学习算法概述
多层感知机与深度学习算法概述 读研之前那会儿我们曾纠结于机器学习.深度学习.神经网络这些概念的异同.现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混-可见深度学习技术的影响力之大.深度学习, ...
- java新手的通病_编程随想:Java新手的通病 PDF 下载
编程随想:Java新手的通病 PDF 下载 下载地址: 提取码:onyi 相关截图: 主要内容: 其实很早以前就想写这样一个文章,可惜当时我没有 Blog,所以到现在才写下来.最近几年,随着 Java ...
- dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现
前言 从本篇开始我们将讲解一些机器学习中常用的算法模型及实现原理,本系列会一直更新,把自己走过的弯路都记录下来,也希望后人学习的过程能更顺畅一点. 正文 感知机的理解 感知机属于机器学习算法中 ...
- 机器学习知识点(七)决策树学习算法Java实现
为理解机器学习第四章节决策树学习算法,通过网上找到的一份现成代码,主要实现了最优划分属性选择和决策树构造,其中最优划分属性选择采用信息增益准则.决策树构造采用递归实现,代码如下: package sk ...
- 图像 引言 深度学习_深度学习算法对磁共振图像序列的识别
本文内容.图片与涉及的源码均为作者原创,未经许可不得转载.版权声明或联系作者请移步 "关于" 前言 面对大数据和人工智能,已经跨过门槛的各路小伙伴们利用深度学习算法不断的炼丹,都已 ...
- 指令流水 一个时钟周期 出一个结果_以SM3算法为例,构建一个软硬协作算法加速器:性能分析与优化...
衡量一款 ASIC 芯片可以从 PPA 三个角度进行. PPA 指的是: Power/Performance/Area,功耗 / 性能 / 面积. 衡量 FPGA 设计同样可以参照 PPA,但又有所不 ...
- java正则表达式判断手机号_正则表达式学习之简单手机号和邮箱练习
正则表达式的组成规则 在java中,正则表达式的编译是类 java.util.regex.Pattern 正则表达式的构造摘要 1.字符x 包括所有大写和小写字母.所有数字.所有标点符号和一些其他符号 ...
- 深度学习算法_深度学习算法
人工智能领域广泛,存在时间较长.深度学习是机器学习领域的一个子集,而机器学习是人工智能领域的一个子集.一般将深度学习网络与"典型"前馈多层网络从如下方面进行区分: 深度学习网络具有 ...
最新文章
- 独家 | 如何全面解析数据并创造数据故事
- 1-编程的基本条件和起步
- 【搜索引擎基础知识2】网络爬虫
- 传智168期JavaEE struts2杜宏 day32~day33(2017年2月15日23:27:09)
- 从零开始学Java编程!java集合类详解和使用
- Screen Painter 程序设计
- 【Fiddler篇】FreeHttp无限篡改http报文数据调试和mock服务
- 配置oracle odbc驱动,oracle odbc driver configuration
- MATLAB语音识别
- 单片机仿真软件Proteus8.0的安装及使用
- word文档添加多个目录
- android o 结构光流程,结构光光斑图案生成方法和结构光光斑图案生成设备的制造方法...
- Cocos2dx开发手机游戏工具集(持续更新)
- 7-22 寻找大富翁 (25 分)
- sqlite设密工具如何使用(本人资源)
- 安全漏洞-报错页面泄露文件路径
- android获取手机短信记录,android 获取手机电话号码和短信内容
- 多路人脸识别解决方案
- 唉 我的libgdx
- DNS协议与请求的C语言实现