自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (4)
  • 收藏
  • 关注

原创 日撸代码300行:第73天(固定激活函数的BP神经网络,训练与测试过程理解)

edgeWeights与edgeWeightsDelta两个三维数组,再声明的时候第二维大小就是“layerNumNodes[l] + 1”。所以,偏置节点没包含在layerNumNodes[l] 里。因此在偏置调整时第二维的下标是j+1。进一步梳理理解了一下正向和反向传播。Forward 是利用当前网络对一条数据进行预测的过程,BackPropagation 是根据误差进行网络权重调节的过程。完整的代码在72天,这里只粘贴Forward和BackPropagation两个方法。

2023-10-01 20:53:18 110

原创 日撸代码300行:第72天(固定激活函数的BP神经网络)

扩展抽象类GeneralAnn,必须要实现对应的类内的抽象方法。核心代码就是正向和方向传播两个方法的实现。

2023-09-12 21:55:52 104

原创 日撸代码300行:第71天(BP神经网络基础类)

实现了一个抽象类,包含两个抽象方法forward和backPropagation。argmax方法是为了找出当前数组的最大值,用于输出层确定最终标签。test用于测试,计算分类精度,没有反向传递。方法train用来训练网络,有反向传递环节。

2023-09-12 21:47:46 91

原创 日撸代码300行:第69-70天(矩阵分解)

updateNoRegular()方法是子矩阵更新,是核心代码。这里对应的是上文提到的知乎参考文章中的“随机梯度下降法”。预测是通过分解后的用户和项目子矩阵相应位置相乘,得到的分数就是推荐的打分。Triple类是三重矩阵的数据结构,用于存储不同类型的三种数据类型。rsme()和mae()两个方法分别是计算均方误差和绝对误差。代码来自闵老师”日撸 Java 三百行(61-70天)

2023-08-24 23:30:32 435

原创 日撸代码300行:第66-68天(主动学习之 ALEC)

本次代码的实现是基于高斯密度,ALEC算法原文是基于密度峰值,同样是基于密度聚类,稍微还是有一些差别。Step 4. 如果不纯,将当前块划分为两个子块, 分别 Goto Step 3.个标签具有相同类别, 就认为该块为纯的, 其它对象均分类为同一类别. 结束.Step 2. 假设当前数据块有 N个对象, 选择最具代表性的前。代码来自闵老师”日撸 Java 三百行(61-70天)Step 1. 将对象按代表性递减排序;部分对代码的理解已经标注在备注里。个查询其标签 (类别).Step 3. 如果这。

2023-08-21 21:56:59 657

原创 日撸代码300行:第65天(集成学习之 AdaBoosting-3)

else里面是进行对象属性的权重调整,调用的是前天代码里的adjustWeights方法。至于后面的if语句,应该是为了防止出现无意义的权重。最后一步是如果精度达到0.999999就在这一轮循环终止了,已经达到预期的精度,并输出是在第几轮停止的。setNumBaseClassifier方法设置基础分类器的个数,里面的变量classifierWeights保存的是分类器的权值。今天的代码完成的是基础分类器的集成,类名为Booster。构造函数传入数据集后,设置了训练集和测试集,两个是一样的都是传入的数据集。

2023-08-10 22:35:52 64

原创 日撸代码300行:第64天(集成学习之 AdaBoosting-2)

这里实现了一个弱分类器——树桩分类,只是将数据集分为两类。分类的时候的操作有点儿类似决策树,以某一属性进行分类。决策树是根据信息熵计算按照哪个属性分类,树桩分类是随机选择一个属性进行分类。抽象分类器定义了两个抽象方法,是为了支持不同的弱分类器。这里并没有具体实现分类,是一个超类。然后从头开始画线,直至画出最优分类效果的线。大于cut的是右孩子类。此时对应的cut就是最好的分类位置。最优分类效果的标准是左边最优类标签权重和加上右边最优类标签权重和达到最大值。分别算出左孩子类和右孩子类的最优标签。

2023-08-09 21:29:11 56

原创 日撸代码300行:第63天(集成学习之 AdaBoosting-1)

今天的代码的核心是方法adjustWeights(boolean[] paraCorrectArray, double paraAlpha)。分类正确的实例,权重调整为原值除以Math.exp(paraAlpha);分类错误的调整为原值乘以Math.exp(paraAlpha)。测试方法里,之所以for循环到tempCorrectArray长度的一半,仅仅是为了测试。相当于设置弱分类器分类正确了一半。代码来自闵老师”日撸 Java 三百行(61-70天)

2023-08-09 21:05:08 72

原创 日撸代码300行:第61-62天(决策树算法)

前几个方法都比较简单,也容易理解,包括计算熵值和投票决定标签等。比较难理解的是树的构建。刚开始的时候没理解,为什么第二个构造函数传入的第一个参数是整个数据集。因为算法是从第一个构造函数读入数据集的,所以为了启动算法,第二个构造函数需要传入整个数据集。算法的精度有点儿高,试了三四个UCI公开数据集,精度都能达到0.99。有点儿吓人,不晓得是不是过拟合了。代码来自闵老师”日撸 Java 三百行(61-70天)

2023-08-06 21:34:57 95

原创 日撸代码300行:第60天(小结)

粗略的阅读了博客中提到的论文,了解了算法的基本思路。9、从NB算法对数值型和符号型数据的处理上来看,不同的数据类型,相同的算法可能处理起来完全不一样。即使理论是一样的,但是数值型数据就是用概率密度来实现的,且需要用到高斯分布的相关知识。6、这几天还将机器学习的常识进行了系统的学习和阅读,对一些常见的问题和经典算法有了进一步的了解。这个对于原理没有太搞清楚,简单的搜了一下,没有搜到,先记住吧。8、对NB算法有了更深一步的理解,以前只知道是根据概率进行分类,但是到底是怎么实现的,其实是一脸懵逼状态。

2023-07-31 19:57:45 157

原创 日撸代码300行:第59天(数值型数据的 NB 算法)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957。代码内容包含昨天的符号型数据,没有进行删除。数值型的处理方法和符号型的第一步是一致的,都是计算数据集中类的分布。数值型第二步是计算高斯分布的参数,即方差。相较于符号型数据,数值型是将实例的概率密度带入进行概率计算。数值型数据仅需要对决策属性那里进行Laplacian平滑处理即可。其余的计算精度,以及分类预测都大同小异。

2023-07-31 18:58:43 136

原创 日撸代码300行:第58天(符号型数据的 NB 算法)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957。符号型数据的NB 算法主要有两个步骤,第一步是计算数据集类的分布。第二步是条件概率,是考虑Laplacian平滑的条件概率。Naive Bayes是通过概率分布来进行分类。

2023-07-31 18:42:56 102

原创 日撸代码300行:第56-57天(kMeans 聚类)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957。循环中主要有三步:(1)计算每个实例到中心的最近距离。代码实现的思路为:定义一个数组,存放老的聚类数组。4、重复步骤2和3直至算法收敛(簇中心不再改变,或者达到设定的轮数)2、计算每个实例与中心的距离。3、根据同一簇的实例重新计算簇的中心,作为新的簇的中心。3、形成簇,把属于同一个簇的实例索引存到同一个数组。

2023-07-29 21:48:02 81

原创 日撸代码300行:第55天(基于 M-distance 的推荐 (续))

电影推荐算法,基于 M-distance 的推荐(user-based recommendation)

2023-07-27 16:29:43 60

原创 日撸代码300行:第54天(基于 M-distance 的推荐)

电影推荐算法,基于 M-distance 的推荐(item-based recommendation)。

2023-07-27 16:12:27 60

原创 【无标题】机器学习常识阅读笔记

冷启动指的是一开始的数据没有标签,一般情况下的主动学习是有一部分标签的。冷启动开放世界主动学习. 有 500 个样本, 先都没有给标签. 现在专家答应给其中 100 个打标签. 机器需要对另外的一些样本 (未知样本) 进行预测。关于第19篇的矩阵分解:原来也接触过矩阵分解,但是这篇博客里的内容大部分之前不清楚,比如非负矩阵的概念,之前只是听过名词,不知道含义。这一篇博客里关于稀疏矩阵分解在推荐系统的应用,也是了解了推荐系统的工作的一个思路。指的是给包打标签,最终也不知道具体的样本的正负。

2023-07-25 23:59:02 380

原创 日撸代码300行:第53天(kNN分类器续)

/** * ************************************************************** * Weighted voting * * @param paraNeighbors The number of neighbors. * @param paraWeightMeasure The measure of weight. * @return * **************************************.

2022-05-13 08:00:11 119

原创 日撸代码300行:第52天(kNN分类器续)

1.重新实现computeNearests,根据闵老师提示,参照插入排序的思想进行。这里需要设置一个距离的序列,在对距离值进行排序的同时,序列也要同步排序。最后得到前k个邻居的序列,这样才能将距离最近的k个邻居选出来。代码保存了调试语句。/** * ********************************************************************* * Recalculate the nearest k neighbors * * @param pa

2022-04-29 07:40:57 3423

原创 日撸代码300行:第51天(kNN分类器)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957代码实现的基本思路:先用构造函数KnnClassification读入数据,紧接着将读入的数据按照比例分为训练集和测试集,用训练集对测试集进行预测。预测的过程中需要计算距离,这里使用了两种距离计算公式,分别是欧氏距离和曼哈顿距离。根据计算出的距离,找出距离要预测的实例(测试集中的实例)最近的k个对象(训练集中的对象)。最后由最近

2022-04-24 07:10:43 147

原创 日撸代码300行:第50天(小结)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863四个问题:1. 比较分析各种查找算法.2. 设计一个自己的 Hash 函数和一个冲突解决机制.3. 比较分析各种排序算法.4. 描述各种排序算法的特点和基本思想.顺序查找:第一个键值对为空,用来做哨兵。一个for循环就能完成算法。因为第一个键值对的键值等于要找的数,所以用i递减的方式。如果找到了直接返回,如果没找到就会

2022-04-12 07:56:32 2911

原创 日撸代码300行:第49天(归并排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863

2022-04-01 07:54:52 103

原创 日撸代码300行:第48天(堆排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863堆排序理解:https://blog.csdn.net/qq_28063811/article/details/93034625

2022-03-17 07:54:18 173

原创 日撸代码300行:第47天(选择排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863选择排序算法理解可参考:https://zhuanlan.zhihu.com/p/298895991、选择排序算法思想比较简单,关键有两点。第一点,选择当前的最值(最大或最小);第二点,将最值放在其改在的位置,即最小值依次轮次的首位(按照最大值排序则依次放在末尾)。2、两层for循环,第二层循环是为了找到当前循环内的最小值,键

2022-03-11 07:19:17 17440

原创 日撸代码300行:第46天(快速排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863快速排序算法理解可参考:https://blog.csdn.net/qq_40941722/article/details/94396010

2022-03-08 07:57:58 173

原创 日撸代码300行:第45天(冒泡排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863

2022-02-27 08:06:12 452

原创 日撸代码300行:第44天(希尔排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863 /** * ***************************************************************** * Shell sort. We do not use sentries here because too many of them are needed. * ******

2022-02-18 21:43:56 466

原创 日撸代码300行:第43天(插入排序)

代码来自闵老师”日撸 Java 三百行(41-50天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863插入排序 public void insertionSort() { DataNode tempNode; int j; for (int i = 2; i < data.length; i++) { tempNode = data [i]; for (j = i - 1; data[j].

2022-02-15 22:16:10 401

原创 日撸代码300行:第42天(哈希表)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863 /** * ******************************************************************** * The second constructor of class DataArray. For Hash code only. * It is assumed th

2022-02-15 00:11:07 182

原创 日撸代码300行:第41天(顺序查找与折半查找)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975863package datastructure.search;/** * Data array for searching and sorting algorithms. * * @author WX873 * */public class DataArray { /** * An inner class f

2022-02-13 23:35:31 64

原创 日撸代码300行:第40天(小结)

1、每次需要先网上搜一下,将算法真正理解了再来看代码。代码是在不理解的时候就根据测试实例,在纸上手写每一步做了什么,一般两步就搞明白了。2、感觉自己最近太强求进度了,有些代码没有真正的弄懂、搞会。只是当时把原理搞清楚了,把代码敲了一遍,自己写代码的能力还没有真正训练出来。...

2022-02-13 12:41:16 235

原创 日撸代码300行:第 39天(关键路径)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772拓扑排序:每次剪掉入度为一个0的节点。理解参考:https://www.jianshu.com/p/3347f54a3187关键路径:活动的最早开始时间和最晚开始时间相等,则说明该活动是属于关键路径上的活动,即关键活动。理解参考:https://blog.csdn.net/fu_jian_ping/article/details

2022-02-12 23:03:19 327

原创 日撸代码300行:第38天(Dijkstra 算法与 Prim 算法)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772Dijkstra 算法理解参考:https://zhuanlan.zhihu.com/p/129373740Prim算法理解参考:http://c.biancheng.net/algorithm/prim.html两种算法都是把所有点分成两类A和B,将B(未找到最短路径的集合)中的点不断的移动到A(已找到最短路径的集合)里面去

2022-02-11 22:47:22 336

原创 日撸代码300行:第 37 天( 十字链表)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772

2022-02-08 17:55:13 595

原创 日撸代码300行:第36天(邻连表)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772package datastructure.graph;import datastructure.queue.*;public class AdjacencyList { class AdjacencyNode{ /** * The column index. */ int column;

2022-02-07 20:51:14 217

原创 日撸代码300行:第35天(图的 m 着色问题)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772**问题描述:**给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的2个顶点着不同颜色。这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的色数m的问题称为图的m可着色优化问题。 /*

2022-02-06 18:19:48 14862

原创 日撸代码300行:第34天(图的深度优先遍历)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772

2022-02-06 09:25:07 438

原创 日撸代码300行:第33天(图的广度优先遍历)

代码来自闵老师”日撸 Java 三百行(31-40天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772

2022-02-05 15:53:25 86

原创 日撸代码300行:第32天(图的连通性检测)

代码来自闵老师”日撸 Java 三百行(21-30天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772package datastructure.graph;import matrix.IntMatrix;/** * * Directed graph. Note that undirected graphs are a special * case of directed graphs. * * @autho

2022-02-04 17:18:51 762

原创 日撸代码300行:第31天(整数矩阵及其运算)

代码来自闵老师”日撸 Java 三百行(21-30天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975772package matrix;import java.util.*;import javax.security.auth.kerberos.KerberosKey;import javax.xml.crypto.Data;/** * Integer matrix. For efficiency we do not

2022-02-03 20:57:57 380

原创 日撸代码300行:第29-30天(Huffman编码 建树、编码与解码)

代码来自闵老师”日撸 Java 三百行(21-30天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975721public static void fill(Object[] a, int fromIndex, int toIndex, Object val)将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。ASCII

2022-02-02 22:42:04 634

画图工具Grapher安装包

画图工具Grapher安装包,画折线图,三维图简单快捷。该安装包为Grapher版本,支持64位。

2018-08-29

KMeans算法java代码

KMeans算法是机器学习的经典算法,该文档实现了KMeans算法,文档中的数据是为了实现算法随机构造的。

2018-01-23

思科7600路由器介绍

文档介绍了思科7600路由器,包含7600的性能,支持的模块,端口通道化,引擎介绍等。文档后面还介绍了部分路由器相关知识,包括背板及多WAN路由器等

2018-01-23

cisco路由器镜像文件种子

压缩包里是cisco路由器镜像文件的下载种子。种子包含的镜像文件总大小7.18g。算是比较全的镜像文件种子了。

2015-07-30

空空如也

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

TA关注的人

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