自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

转载 GUI (1. 对话框相关控件)

学习来源:日撸 Java 三百行(71-80天,BP 神经网络))_闵帆的博客-CSDN博客GUI(Graphics User Interface),中文名称为图形用户界面,是指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。代码说明:ApplicationShowdown.java 仅用于退出图形用户界面 GUI. 只生成了一个静态的实例对象. 构造方法是 private 的, 不允许在该类之外 new.package mach..

2022-05-29 19:46:57 214

原创 神经网络之BP神经网络

一、BP神经网络的概念BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型: (三层BP神经网络模型)BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。...

2022-05-27 16:51:04 30623 2

原创 Funk-SVD实现的矩阵分解

一、算法简介1.1 基本特性 所谓的矩阵分解其实就是将一个矩阵分解为两个或者多个低维矩阵的,这两个低维矩阵能够代表原矩阵特性并且预测原矩阵中未知的特性——在推荐系统矩阵中的描述就是:通过评估低维矩阵乘积来拟合评分矩阵。 沿用之前图,面对一个有m个用户与n个项目的稀疏的矩阵,第i行表示第i个用户对于每个项目的评分,图中的问号部分表示这部分没有具体的评分;第j列表示某个项目不同用户给予的评分状况。现在假设将此矩阵分解为两个或者多个矩阵的乘积,这里假设有两个低维矩阵与...

2022-05-25 19:01:54 2324

原创 奇异值分解(SVD)

1. 回顾特征值和特征向量首先回顾下特征值和特征向量的定义如下:其中是一个矩阵,是一个维向量,则是矩阵的一个特征值,而是矩阵的特征值所对应的特征向量。求出特征值和特征向量有什么好处呢? 就是我们可以将矩阵A特征分解。如果我们求出了矩阵A的n个特征值,以及这个特征值所对应的特征向量 .那么矩阵就可以用下式的特征分解表示: 其中W是这n个特征向量所张成的...

2022-05-21 16:27:37 4183 1

原创 AdaBoost-集成器设计

一、成员变量、构造函数与基础初始化函数一览 /** * Classifiers. */ SimpleClassifier[] classifiers; /** * Number of classifiers. */ int numClassifiers; /** * Whether or not stop after the training error is 0. */ boolean stopAfterConverge = false; /**

2022-05-19 19:15:44 233

原创 AdaBoost-树桩分类器

树桩分类器树桩分类器的二分分割思想为什么是树桩?之所以这类分类器我们会称之为“ 树桩 ”,因为这种分类器是没有分支的。AdaBoost当中,树桩分类器只一个二分类器,即只能识别两个标签,而且分类之后没有递归,就简单分出两个孩子而已。显然这样的分类器自身是无法胜任多标签的任务,我们需要通过多个AdaBoost的多个分类器的串行组合来从两个标签扩充到多标签。树桩分类类似于ID3决策树但是又有不同。相同地方在于:他们都会选定一个条件属性作为自己分类的依据,都是通过分析条件属性的可取值来分割数据集不同地

2022-05-17 21:21:10 572

原创 主动学习之 ALEC

1. 主动学习 Active learning 图 1. 主动学习场景2. 三支主动学习基于聚类的主动学习 样本处于三种状态: 被查询、被分类、延迟处理 图 2. 三支主动学习2.1 ALEC 算法 ...

2022-05-15 16:28:24 444

原创 集成学习之 AdaBoosting

一、集成学习集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,也就是平常所说的“三个臭皮匠顶个诸葛亮”的道理。下面从两个方面对集成学习进行简要介绍。它有两个大种类:根据个体学习器的生成方式,目前的集成学习方法大致可以分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表算法是Boosting系列的算法;以及个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表算法是

2022-05-13 20:00:46 609

原创 机器学习之决策树

决策树(Decision Tree)决策树是一种常见的机器学习方法,它是从根节点开始,一步一步决策,直到走到叶子节点。最终,所有的样本数据都会落到叶子节点,显然,决策过程的最终结论对应了我们所希望的判定结果 。它即可以做分类问题,也可以做回归问题。决策树组成一般,一棵决策树包含一个根节点,若干个内部节点(非叶子节点)和若干个叶子节点。1.根节点:第一个选择点2.内部节点(非叶子节点):中间决策过程3.叶子节点:最终的决策结果决策树的训练流程如何从给点定的训练集中去构造一棵决策树呢?其

2022-05-11 19:49:20 1806

转载 Naive Bayes算法

学习来源:日撸 Java 三百行(51-60天,KNN与NB))_闵帆的博客-CSDN博客Naive Bayes 是一个经典的、有代表性的分类算法. Naive 的 i 上面应该是两个点, 它读作 “哪义乌”, 表示很傻瓜很天真. Bayes 是一个神职人员, 也是概率界的一个神级人物. 中国程序猿喜欢把它读作 “牛逼算法”, 其实也没吹的那么厉害.1. 例子数据集 1: 符号型符号型数据集, 还是用 weather 吧.@relation weather.symbolic@attribute

2022-05-08 18:24:59 360

原创 kMeans 聚类

kMeans 聚类1.什么是聚类监督式学习:训练集有明确答案,监督学习就是寻找问题(又称输入、特征、自变量)与答案(又称输出、目标、因变量)之间关系的学习方式。监督学习模型有两类,分类和回归。• 分类模型:目标变量是离散的分类型变量;• 回归模型:目标变量是连续性数值型变量。无监督学习:只有数据,无明确答案,即训练集没有标签。常见的无监督学习算法有聚类(clustering),由计算机自己找出规律,把有相似属性的样本放在一组,每个组也称为簇(cluster)。最早的聚类分析是在考古分类、昆虫分类

2022-05-06 18:54:07 16927 2

转载 基于 M-distance 的推荐

学习来源:日撸 Java 三百行(51-60天,KNN与NB))_闵帆的博客-CSDN博客基于 M-distance 的推荐1.所谓 M-distance, 就是根据平均分来计算两个用户 (或项目) 之间的距离.炫一下数学表达式. 令项目 j 的平均分为Xj,采用 item-based recommendation, 则第 j 个项目关于第 i 个用户的邻居项目集合为第 i个用户对 j个项目的评分预测为:2.邻居不用 k 控制. 距离小于 radius (即 ϵ) 的都是邻居. 使用 M-dis

2022-05-04 18:34:07 241

转载 KNN学习

学习来源:日撸 Java 三百行(51-60天,KNN与NB))_闵帆的博客-CSDN博客第 51 天: kNN 分类器一.KNN算法概述KNN可以说是最简单的分类算法之一,同时,它也是最常用的分类算法之一,注意KNN算法是有监督学习中的分类算法,它看起来和另一个机器学习算法Kmeans有点像(Kmeans是无监督学习算法),但却是有本质区别的。那么什么是KNN算法呢,接下来我们就来介绍介绍吧。二.KNN算法介绍KNN的全称是K Nearest Neighbors,意思是K个最近的邻居,从这个名字

2022-05-02 21:51:13 215

转载 Java-13

学习来源:日撸 Java 三百行(41-50天,查找与排序))_闵帆的博客-CSDN博客46.快速排序1.平均时间复杂度为O(nlogn), 但最坏情况还是 O(n^2)2.Pivot 应该选 (该子序列的) 最后一个元素.3.递归算法, 每次只能确定 pivot 的位置.4.判断条件 && (tempLeft < tempRight) 不能少.5.(data[tempRight].key >= tempPivot) 不能写成 >, 否则出现两个相同 key 时

2022-04-29 17:54:04 127

转载 Java-12

学习来源:日撸 Java 三百行(41-50天,查找与排序))_闵帆的博客-CSDN博客41.顺序查找与折半查找1.顺序查找使用岗哨可以节约一半的时间. 为此, 第 0 个位置不可以放有意义的数据, 即有效数据只有 length - 1 个.2.顺序查找时间复杂度为 O ( n ) O(n)O(n).3.折半查找时间复杂度为 O ( log ⁡ n ) O(\log n)O(logn).4.书上为简化起见, 只关注键. 这里使用键值对来表示一条完整的数据. 实际应用中可以把 content 改成任

2022-04-27 21:05:16 142

转载 Java-11

学习来源:日撸 Java 三百行(31-40天,图))_闵帆的博客-CSDN博客36.邻连表1.相当于图的压缩存储. 每一行数据用一个单链表存储.2.重写了广度优先遍历. 可以发现, 使用队列的机制不变. 仅仅是把其中的 for 循环换成了 while, 避免检查不存在的边. 如果图很稀疏的话, 可以降低时间复杂度.package datastructure.graph;import datastructure.queue.CircleObjectQueue;/** * Adjacency

2022-04-25 21:55:48 139

原创 汇报存在的问题

1.Ppt不能使用黑底白字。应当使用白色黑字。或者使用群文件里黄雨婷20220126那次ppt的模板。2.XGBoost刚好我和肖辉最近也看过。是logcosh loss有关。你可以和他讨论。3.曲线向上向下,有没有指标衡量?4.刚看到论文截图中Time的单位不一致,我们团队不准这么写。5.优点:用通俗易懂的例子引入,如决策树。2.组内分享会:介绍算法必须先说明是输入输出是什么?优化目标是什么?张老师所说的数据格式,是也就是数据集中长什么样子,也就是介绍输入。3.少文字,多图片。用通俗易懂图代替文字。

2022-04-24 15:48:56 319

转载 Java-10

学习来源:日撸 Java 三百行(31-40天,图))_闵帆的博客-CSDN博客32. 图的连通性检测1.适用于有向图. 反正无向图是有向图的特殊形式.2.0 次方的时候是单位矩阵.3.为每一个方法写一个独立的测试方法. 测试代码有时比正常使用的代码更多.4.第一个测试用例是无向图, 第二个是有向图. 可以看到, 后者从节点 1 不能到达节点 0.5.Matrix 基础代码准备好之后, 其它的算法真的很方便. 后面会进一步体会到其威力.package datastructure.graph;

2022-04-23 22:23:33 154

转载 Java-09

学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客28. Huffman 编码 (节点定义与文件读取)1.定义了一个内嵌类. 如果是实际项目, 我就为其单独写一个文件了, 这里仅仅是为了方便.2.每个节点的内容包括: 字符 (仅对叶节点有效)、权重 (用的整数, 该字符的个数)、指向子节点父节点的引用. 这里指向父节点的引用是必须的.3.NUM_CHARS 是指 ASCII 字符集的字符个数. 为方便起见, 仅支持 ASCII.4.inputText 的引入只是

2022-04-21 16:45:31 133

转载 Java-08

学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客25.二叉树深度遍历的栈实现 (中序)今天先来做中序. 分成两个子任务.25.1 具有通用性的对象栈改写栈程序, 里面存放对象.该程序应该放在 datastructure.stack 包内.还是依靠强制类型转换, 支持不同的数据类型.增加了 isEmpty() 方法.package datastructure.stack;/** * Circle int queue. * * @author R

2022-04-19 21:18:45 138

转载 Java-07

学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客23.使用具有通用性的队列昨天使用的队列有两种: 存储二叉树节点的队列; 存储整数的队列. 这样的话, 难道我们要为每种类型单独写一个队列? 这样显然没有充分利用代码的复用性. 实际上, 我们只需要一个存储对象的队列就够啦!Java 里面, 所有的类均为 Object 类的 (直接或间接) 子类. 如果不写就默认为直接子类. 例如public class CircleObjectQueue;等价于public

2022-04-17 19:51:10 123

转载 Java-06

学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客21.二叉树的深度遍历的递归实现21.1 二叉树的遍历比存储、建立要简单. 所以先“手动”建立一个二叉树来玩.21.2 递归算法写起来就是舒服. 前、中、后序的代码差别只有输出语句的位置.21.3 不需要额外的节点类, 每棵二叉树 (树) 都可以从自己的根结点找到其它所有节点. 这个需要自悟.21.4 获取二叉树的层次、总节点数, 也需要递归. 以后可能要用, 这里就一并写了.package datastruc

2022-04-15 19:28:28 133

转载 Java-05

学习来源:日撸 Java 三百行(11-20天,线性数据结构)_闵帆的博客-CSDN博客19.字符串匹配19.1 String 是 Java 常用的类, 这里重新实现下部分功能.19.2 转义符 , 有了它才能正常打印引号.19.3 简单的越界检查.package datastructure;/** * My string. String is a class provided by the language, so I use another name. * It is essentia

2022-04-13 20:01:09 149

转载 Java-04

学习来源:日撸 Java 三百行(11-20天,线性数据结构)_闵帆的博客-CSDN博客14.栈14.1 push 和 pop 均只能在栈顶操作.14.2 没有循环, 时间复杂度为 O ( 1 ) O(1)O(1).package datastructure.list;/*** Char stack. I do not use Stack because it is already defined in Java.* * @author Rui Chen 1369097405@qq.com

2022-04-12 18:24:16 128

转载 Java-03

学习来源:日撸 Java 三百行(11-20天,线性数据结构)11. 顺序表(一)在《数据结构》中, 使用“抽象数据类型”来描述不同的数据结构. 在《面向对象程序设计》中, 用对象来存储数据及其上的操作. 我认为, 它们的本质都是相同的.11.1 对象: 数据及其上操作的总和. 例如, 我是一个对象, 具有身高、体重、年龄、跑步速度等数据; 同时,我具有吃饭、睡觉、送快递等功能. 从计算机的发展来看, 第一阶段以操作 (函数) 为中心, 一个计算导弹轨迹的函数, 根据不同输入获得不同输出. 第二阶段以

2022-04-11 20:03:42 110

转载 Java-02

学习来源:日撸 Java 三百行(01-10天,基本语法)_闵帆的博客-CSDN博客6.基本for 语句6.1 循环语句是程序的核心.6.2 算法的时间复杂度一般根据循环语句来计算.package basic;/*** This is the sixth code. Names and comments should follow my style strictly.* * @author Rui Chen 1369097405@qq.com. */public class ForSt

2022-04-10 16:40:27 126

转载 Java-01

学习来源:日撸 Java 三百行(01-10天,基本语法)_闵帆的博客-CSDN博客1.环境搭建并输出Hello World1.1 完成 Eclipse 的安装. 第一天嘛,把环境弄对就行了.1.2 学习 package, import 和 println 语句. 其中, package 要与所建的包名(即文件夹名)一致.1.3 编写HelloWorld.java. 一定要注意变量的写法....

2022-04-09 22:44:58 146

原创 上机回顾day6

排序算法大全1.冒泡排序1.冒泡排序是比较简单的排序算法,它的运作过程如下:2.进行n-1次排序。3.每次排序从0~n-1-i(i是次数编号),检查这个序列中的数,两两相邻的数,如果前面的大于后面的就将它们交换,这样使得大的数往后面走,每次冒泡就会将一个大的数往后面冒,从而达到目的。算法核心代码:void bubble_sort(int arr[], int len) { int i, j, temp; for (i = 0; i < len - 1; i+

2022-04-05 22:04:27 670

原创 代码回顾day5

找鞍点问题描述:一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入:第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出:在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。优化目标:无。算法思想描述通过flag来表示是否有鞍点 0则无在循环内判断是有还是无 若有则flag++所以无鞍点的时候f

2022-04-04 17:12:14 293

原创 上机回顾day4

模拟报数游戏(约瑟夫环问题)问题描述:有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k报数,报到k的人退出圈子;然后圈子缩小,从下一个人继续游戏,如此下去,直到留下最后一个人。要求定义函数实现。输入:int类型的初始n与自由指定报数k。输出:每个人的退出顺序编号。优化目标:利用循环双链表解决。算法描述:#include <stdio.h>#define MAXN 20void CountOff( int n, int m, int out[] );int mai

2022-04-03 17:31:44 3377

原创 上机回顾day3

汉诺塔递归与非递归的实现问题描述:汉诺塔问题源自印度一个古老的传说,印度教的“创造之神”梵天创造世界时做了 3 根金刚石柱,其中的一根柱子上按照从小到大的顺序摞着 64 个黄金圆盘。梵天命令一个叫婆罗门的门徒将所有的圆盘移动到另一个柱子上,移动过程中必须遵守以下规则:1、每次只能移动柱子最顶端的一个圆盘;2、每个柱子上,小圆盘永远要位于大圆盘之上;输入:一个正整数N,为起始柱上的盘数。输出:每一步移动操作(%c -> %c格式输出)。算法优化:无。递归算法思路:(1)先将 n -

2022-04-01 20:48:43 346

原创 上机题目回顾day2

题目:求自定类型元素序列的中位数实现一个函数,求N个集合元素A[]的中位数,序列中第⌊(N+1)/2⌋大的元素。集合元素的类型为自定义的ElementType。函数接口定义:ElementType Median( ElementType A[], int N );其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,返回值也必须是ElementType类型。算法思想描述:#include <stdio.h> #define MAXN 1

2022-03-31 18:28:40 197

原创 上机题目回顾day1

题目:阶乘计算升级版本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h> void Print_Factorial ( const int N ); int main(){ int N;

2022-03-30 16:00:33 547

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除