自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 白话机器学习的数学-3-评估

那么,哪怕出现模型把数据全部分类为 Negative 的极端情况,Accuracy 值也为 0.95, 也就是说模型的精度是 95%。但它是把所有 数据都分类为 Positive 的模型,精确率极低,仅为 0.02,并不能说它是好模型。随着数据量的增加,使用训练数据时的精度一直很高,而使用测试数据时的精度一直没有上升到它的水准。对于回归的情况,只要在训练好的模型上计算测试数据的误差的平方,再取其平均值就可以了。这里我想说的就是如果模型过于简单,那么随着数据量的增加,误差也会一点点变大。

2024-01-02 11:42:02 946

原创 白话机器学习的数学-2-分类

图片分类:只根据尺寸把它分类为 纵向图像和横向图像。如果只用一条线将图中白色的点和黑色的点分开:这次分类的目的就是找到这条线。

2023-12-29 15:06:39 1210

原创 白话机器学习的数学-1-回归

此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部最优解。根据导数的符号来决定移动 x 的方向,只要向与导数的符号相反的方向移动 x,g(x) 就会自然而然地沿着最小值的方向前进了, 这也被称为最速下降法或梯度下降法。我们稍微扩展一下之前设置的问题。之前只是根据广告费来预 测点击量,现在呢,决定点击量的除了广告费之外,还有广告的 展示位置和广告版面的大小等多个要素。,E(θ) 的 E 是误差的英语单词 Error 的首字母,∑读作“西格玛”。

2023-12-28 15:44:50 757

原创 浅谈信息论和信息编码

在第二次世界大战中,当纳粹德国兵临前苏联莫斯科城下时,斯大林在欧洲已经无兵可派,而他们在西伯利亚的边界却有60万大军不敢使用,因为苏联不知道德国的轴心国盟友日本当时的军事策略是北上进攻苏联,还是南下和美国开战。在二战中,日本军方的密码设计就有问题,美军破获了日本很多密码。它的概念是基于事件发生的概率来定义的,即当一个事件发生的概率较低时,它所包含的信息量较大,反之亦然。香农厉害的地方是,使用统计的方式来量化信息,也就是对信息进行度量,用来计算某个事件发生的信息量有多少, 并用比特(bit)来表示。

2023-08-26 15:14:08 666

原创 布隆过滤器(Bloom Filter)- 原理、实现和推导

算法背景问题:在开发中,经常要判断一个元素是否在一个集合中。实现方案:编程中通常使用集合来存储所有元素,然后通过hash值来确定元素是否存在。如:java中的HashMap、HashSet等。优点:快速准确缺点:耗费存储空间瓶颈:当集合比较小时,这个问题不明显当集合比较大时,散列表存储效率低的问题越明显如:判断邮件地址是否是发送垃圾邮件的地址采用散列表:将每一个Email地址对应成一个8字节的信息指纹,然后存入散列表,由于散列表的存储效率一般只有50%,因此一

2020-11-20 14:03:58 3598

原创 数据湖架构

前言在大数据时代,大数据项目成了各大公司迫在眉睫的实现案例,于是各大公司各显神通,出现了很多数据平台和架构的设计方案。但是,很多大数据项目的落地过程并不容易,最大的问题是,很多客户反应已经接入了那么多的数据,为什么在出报表或要分析相关数据时的周期却那么长,通常需要1至2周,更重要的是很多时候分析的结果并不能给公司带来高收益或高效率,进而不能够给公司的决策上带来帮组,这样数据湖就变成了“垃圾场”。数据湖-单向数据湖的问题造成数据湖的价值之低的主要原因有以下几点: 数据量大:大量...

2020-11-17 09:39:31 3248

原创 策略模式-Java实现

策略模式:一个类的行为(或策略)可以在运行时更改。步骤 1:创建策略接口Strategy.javapublic interface Strategy {public int doOperation(int num1, int num2);}步骤 2:实现策略接口的具体类这里实现了 3 个具体的策略类:OperationAdd.java、OperationSubtract.java、OperationMultiply...

2021-03-01 10:57:15 2588

原创 Java-线程中断

一个线程执行完毕之后会自动结束,但是如果要结束正在运行中的线程,这就使用到线程的中断机制。线程的 run() 方法可能会抛出异常,因为异常不能跨线程传播回 main() 中,因此必须在本地进行处理。线程中抛出的其它异常也同样需要在本地进行处理。Java中有以下方式可以中断线程:InterruptedException(中断异常)通过调用线程的 interrupt() 向该线程发出中断命令,如果此时该线程正处于阻塞、限期等待或者无限期等待状态,那么就会抛出 InterruptedExcepti

2021-02-27 16:49:25 304 1

原创 Linux-系统性能指标

系统负荷(load average)查看系统负荷命令:>uptime输出:11:54:03 up 759 days, 12:59, 212 users,load average: 21.52, 18.95, 22.02其中 load average就是“系统的平均负荷”。这三个数字分别是 1分钟、5分钟、15分钟内系统的平均负荷。判断系统负荷情况:系统所能承受的负荷最大值 =总逻辑核心数每个逻辑核的平均负荷值(V) = 系统平均负荷...

2021-01-25 19:55:48 590

原创 卡方检验

概念卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度。实际观测值与理论推断值之间的偏离程度就决定卡方值的大小: 如果卡方值越大,二者偏差程度越大 如果卡方值越小,二者偏差越小 如果两个值完全相等时,卡方值就为0,表明理论值完全符合 注意:卡方检验针对分类变量。例子卡方检验可以用指定的一个“p”值去判定,“p”是变量独立的概率。例子-1:性别对度假方式的偏爱有影响吗? 沙滩 邮轮 ...

2021-01-06 14:57:05 13252 1

原创 计算机中的负数:二进制补码

二进制运算计算机中,数值的运算都是用二进制表示的。一个二进制数中,最高位是符号位,0 为正数,1 为负数。6 的二进制:0000 01108 的二进制:0000 1000-8 的二进制:1000 1000如计算: 6 + 8 00000110+00001000--------- 00001110得到结果是 0000 1110,也就是十进制的 14。但是如果计算: 6 + (-8) 00000110+10001000--------- 1000.

2021-01-01 00:02:25 3294

原创 代理模式-Java实现-静态代理、动态代理

代理模式指的是一个类代表另一个类的功能,也就是一个类可以作为另一个类的代理。代理模式属于结构型模式。代理类不仅拥有真实类的功能,还可以提供一些额外的附加功能。代理模式有两种:静态代理、动态代理。静态代理静态代理中,代理类是要显示声明的,而且代理类和真实类要实现同一个接口。步骤 1:创建真实类和代理类的公共接口public interface CommonInterface {void action();}...

2020-12-26 21:38:37 314

原创 字符编码:ASCII、Unicode、UTF-8和字节序

ASCII码在计算机中,所有的数据在存储和运算时都要使用二进制表示。而具体用哪些二进制数表示哪个符号,每个人都可以制定自己的一套规则,这就叫编码。为了让大家互相通信而不造成混乱,就需要使用相同的一套编码规则。ASCII码(美国信息交换标准代码)就是一套通用的标准编码,主要用于表示英语和其它西欧语言。ASCII码使用一个字节表示一个字符,一个字节(8位二进制)可以表示256个不同的符号,从 0000 0000 到 1111 1111。如ASCII码: 二进制...

2020-12-26 21:23:53 867

原创 Storm中Topology、Worker、Executor和Task的关系

Storm中Topology、Worker、Executor和Task的关系,如图:1、1个Topology对应1个或多个Worker进程,1个Worker进程只属于1个Topology2、1个Worker进程包含1个或多个Executor线程3、1个Executor线程可以执行同类型的1个或多个Task,要么都是spout的Task,要么都是bolt的Task。如果 Executor数量 < Task数量 ,Executor线程会循环顺序调用Task实例。4、1个Task就是最.

2020-12-24 20:04:28 3978 6

原创 单例模式-Java实现-非延迟加载、延迟加载

单例模式:确保在任何时候,该类只有唯一 一个实例。单例的创建有两种方式:1、非延迟加载:不管什么时候要使用,先提前创建实例。2、延迟加载:等到真正要使用的时候才去创建实例,不用时不要去创建。第一种:非延迟加载public class Singleton {private static final Singleton instance = new Singleton();private Singleton() {}...

2020-12-17 19:33:14 805 1

原创 准度(准确度)和精度(精密度)

准度:准确度,指测量值和实际值有多相近。精度:精密度或精确度,指多个测量值互相之间有多相近。如射箭例子:1、精密度高,不一定准确度高,如果存在“偏差或误差”,测量值可能全部都是错误的。2、准确度高,不一定精密度高,测量值虽然都在实际值附近,但是还存在一定的偏差。3、高准度和高精度是我们追求的目标,测量值和实际值基本相吻合。...

2020-12-09 10:11:46 27936 3

原创 逆矩阵的概念、应用和求解

逆矩阵的概念矩阵运算中,是没有除法的,也就是不能除以一个矩阵,这时就需要逆矩阵了。注意:矩阵一定是方正(行和列的数目相同),才能有逆矩阵。假设知道矩阵 A 和 B,而需要求矩阵 X:XA = B虽然不能除以矩阵A(X=B/A),但是可以每边都乘以 A-1:XAA-1= BA-1因为 AA-1= I (I 是单位矩阵),所以:XI = BA-1最后得出 :X = BA-1求解逆矩阵逆矩阵求解公式:调换 a 和 d 的位置,把 负号放在...

2020-12-08 20:14:41 25051 1

原创 分布式CAP原理:一致性、可用性、分区容错

CAP概念单机系统由于所有的处理都在单机完成的,所以不存在数据一致性问题,但是如果系统崩溃了,就导致服务不可用。分布式系统可以实现服务的高可用,现有的大型网站几乎都是分布式的,特别是微服务的出现,使得分布式系统正变得越来越重要。分布式系统最大的难点,就是各个节点的状态如何同步。CAP原理给分布式系统的实现带来了指导思路,它也是理解分布式系统的重要理论。CAP由以下三个指标组成:C(Consistency):一致性A(Availability):可用性P(P...

2020-12-08 17:09:55 5078 2

原创 Java实现非对称加密算法-RSA加解密

RSA是由三位数学家Rivest、Shamir 和 Adleman 发明的非对称加密算法,这种算法非常可靠,秘钥越长,就越难破解。目前被破解的最长RSA秘钥是768个二进制位,长度超过768位的秘钥还无法破解,但随着计算能力的增强,以后被破解到多少位还是未知数。就目前而言,1024位的秘钥属于基本安全,2048位的秘钥属于极其安全。RSA算法在计算机网络中被普遍应用,如:https、ssh等。该算法还可以实现应用许可证(license),有以下几个步骤: 甲方构建密钥对(公钥和私钥,公钥给

2020-12-08 12:55:30 1424

原创 Java实现对称加密算法-AES加解密

AES(Advanced Encryption Standard)意思是高级加密标准,是一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。那么为什么原来的DES会被取代呢,原因就在于其使用56位密钥,比较容易被破解。而AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据,相对来说安全很多。完善的加密算法在理论上是无法破解的,除非使用穷尽法。使用穷尽法破解密钥长度在128位以上的加密数据是不现实的,仅存在理论上的可能性。统计显示,即使使用目前.

2020-12-07 20:33:28 1255 1

原创 实数、虚数和复数

实数我们想象到的数差不多都是实数。实数包括: 整数 :像 0、1、2、3、-1、-2 等等。 有理数: 像 3/4、0.125、0.333……、1.1 等等。 无理数:想 π, √2 等等。 什么不是实数: 虚数: 像√−1。 无穷大 实数直线(用几何直线来描述实数):实数是相对虚数来说的,直到有虚数后,才把非虚数叫做实数。虚数虚数的定义:虚数的平方是负数。如:但是...

2020-12-04 16:57:53 35765 2

原创 理解常用的无理数:自然常数(e)、圆周率(π)、黄金比例(φ)

自然常数(e)自然常数e(也称欧拉数)是个有名的无理数,也就是无限不循环小数,它是数学里最重要的数字之一。e出现在很多数学领域里,所以了解它是很有用的。e 等于:2.7182818284590452353602874713527(无穷继续……)如何计算e 值?(1)当 n 越来越大时,(1 + 1/n)n的值越来越趋近e:(2) e也等于 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + 1/5! + 1/6! ...

2020-12-03 10:43:52 10311

原创 质数(素数)的概念和应用

质数 (素数)的定义质数 (素数)只能被 1 或自己整除。同时它必须是大于 1 的整数。1 不是质数也不是合成数。质数和合成数的区别质数:一个不可以被整除的数。如:7 只能被 1 或 7 整除,所以它是质数。如图(7不能被整除):合成数:一个可以被整除的数。如:6 可以被 1、2、3 和 6整除,所以它是合成数。如图(6可以被2或3整除):质数的另外一个定义是,当一个数只有1和自己两个因子时,这个数就是质数。如:...

2020-12-03 10:33:23 4773

原创 Java虚拟机(JVM)-1-内存区域

对于Java程序员来说,不用担负着每一对象从创建到销毁的维护任务,这个任务由Java虚拟机(JVM)的动态内存分配和垃圾收集技术来实现。虽然JVM会自动对内存进行管理,但是一旦出现内存泄露和内存溢出的问题,如果不了解JVM是如何管理内存的,那排查错误、修正问题将会是一项困难的工作。JVM在执行Java程序时,会把它所管理的内存划分为多个不同的数据区域,这些数据区域也称为运行时数据区域。如图:程序计数器(Program Counter Register)...

2020-12-02 09:56:56 797

原创 变量之间的相关性:协方差、相关系数

协方差方差和标准差衡量的是一个变量(一组数据)的离散程度,也就是变量和均值之间的偏离程度。协方差衡量的是两个变量之间的相关性,如:正相关:两个变量具有相同的变化趋势(也称同方向),要么同时变大,要么同时变小,这时协方差是正的;负相关:两个变量具有相反的变化趋势(也称反方向),一个变大,另一个变小,这时协方差是负的;无相关:两个变量没有相关关系,这时协方差为0。协方差描述的是两个变量是否同时偏离期望值(或均值),偏离的方向相同就是正相关,偏离的方向相反就...

2020-12-02 09:41:16 13243

原创 深度学习-吴恩达-笔记-7-超参数调试、Batch正则化和程序框架

调试处理神经网络涉及到很多的超参数。参数调试的优先级或重要程度如下(从高到低):学习速率 ????动量梯度下降法 ???? = 0.9隐藏层单元数mini-batch 批次大小网络层数学习率衰减????1, ????2和 ????注意:参数调试的优先级并不是固定的,只是建议的优先级。随机取值方式:这里假设有两个超参数(左右图都是25的点)。避免采用左图的网格取值方式:这是有规律的取值,参数较少时还好,但不适用参数较多的情况。

2020-12-01 16:30:11 994

原创 频率和概率、平均值和期望值

频率和概率频率和概率是不同的概念,我们经常把频率说成了概率。如:当我们抛一枚硬币100次,出现40次正面朝上,60次反面朝上,这时有人说,正面朝上的概率是 2/5,这就是没能将频率和概率区分出来。在上面这个例子中,关于40次出现正面朝上,只能说正面朝上的频率是 2/5,而不能说概率是 2/5。概率是理想值,频率是实验值。概率指的是,在所有发生的事件中,某一个事件发生的次数占所有事件次数的百分比。这里的“所有发生的事件”,在现实中几乎是无法统计的,如:统计从古至今...

2020-11-30 17:38:48 5036

原创 深度学习-吴恩达-笔记-6-优化算法

Mini-batch 梯度下降之前的梯度下降法,在每一次迭代时都处理了全部的样本数据,如果样本过大,一次迭代会变得非常慢。训练样本:实际输出值:mini-batch 梯度下降法就是把全部训练集分割成数量相等的多个小批次集,一次迭代只处理一个小批次集,直到遍历迭代完所有的小批次集即可。把训练集 ???? 分成 ???? 等份,同样,把 ???? 也分成 ???? 等份,得到以下符号::表示第 ???? 个小批次集的训练样本。:表示第 ???? 个

2020-11-30 14:26:20 1840 1

原创 Linux文件系统中的inode

磁盘中最小的存储单位是“扇区”,操作系统中文件最小的存储单位是“块”,一个“块”由连续的8个“扇区”组成,一个文件可以由多个“块”组成,而这些“块”并不一定是连续的。操作系统要读取一个文件时,是如何找到这些“块”的呢?这就需要一种映射关系,方便系统通过文件名找到对应的“块”,inode就用来维持这种映射关系的。inode是index node,也就是“索引节点”,每一个文件都有对应的inode,inode保存的是文件的元信息,操作系统就是通过inode来管理文件的。inode包含的元信息..

2020-11-27 20:53:33 2074

原创 深度学习-吴恩达-笔记-5-深度学习的实践层面

训练、验证、测试集应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心的神经网络,因此循环该过程的效率是决定项目进展速度的一个关键因素,而创建高质量的训练集,验证集和测试集也有助于提高循环效率。在机器学习发展的小数据量时代,常见做法是将所有数据三七分,就是常说的 70% 验证集, 30%测试集,如果没有明确设置验证集,也可以按照 60%训练, 20%验证集和 20%测试集来划分。这是前几年机器学习领域普遍认可的较好的实践方法。 如果只有 100 条, 1000 条...

2020-11-27 16:33:51 1921

原创 操作系统中的用户空间和内核空间

在操作系统中,程序分为两类:用户程序和内核程序。用户程序:Java、Python、C等编写的应用程序。内核程序:文件读写、网络传输、进程和线程管理、调用系统资源等。用户程序运行的空间就是用户空间,即 user space。内核程序运行的空间就内核空间,即 kernel space。这两个空间是隔离的,即使用户程序崩溃了,内核也不受影响。如图:用户空间只能执行简单的运算,很多时候,还需要调用内核空间。如应用程序要读取某个文件时,并不是直接去读取文件,而是...

2020-11-27 09:41:54 4109

原创 深度学习-吴恩达-笔记-4-深层神经网络

深层神经网络有一个隐藏层的神经网络,就是一个两层神经网络。神经网络的层数不包含输入层,只包含隐藏层和输出层。深度学习的符号定义:上图是一个四层的神经网络,有三个隐藏层, 输入层是第 0 层。L 表示层数, 输入层的索引为“0”。第一个隐藏层,表示有 5个隐藏神经元。输入层。记作 ???? 层激活后结果。 记作 ???? 层计算 值的权重。输入的特征记作 ????,但是 ???? 同样也是 0 层的激活函数,所以。...

2020-11-26 15:35:53 2020

原创 计算机中的回车和换行

在计算机中打印完一行字符后,会在每行后面添加表示结束的字符,也就是回车和换行。回车:表示把打印头定位到左边界。换行:表示打印头向下移一行。但是,不同的操作系统中,表示结束的字符又不一样:windows系统中,每行结尾是:<回车><换行>,即“\r\n”。unix/linux系统中,每行结尾是:<换行>,即“\n”。mac系统中,每行结尾是:<回车>,即“\r”。这样导致的后果是:unix/linux/mac系统下的文件在wind

2020-11-25 17:04:45 2916

原创 深度学习-吴恩达-笔记-3-浅层神经网络

神经网络概述神经网络看起来如下这个样子,也就是把许多sigmoid 单元堆叠起来形成一个神经网络:整个计算过程如下:第一层前向传播:第一层反向传播:第二层反向传播:神经网络的表示本例中的神经网络只包含一个隐藏层:神经网络的符号定义:计算一个神经网络的输出隐藏层的计算输出过程:隐藏层的输出的详细结果如下: ...

2020-11-25 11:28:35 2086

原创 深度学习-吴恩达-笔记-2-神经网络的编程基础

二分类判断一个对象是否属于某个分类,其结果只有两种,是或否。逻辑回归逻辑回归是一个用于二分类的算法。逻辑回归的假设函数是 sigmoid 函数:逻辑回归的代价函数逻辑回归中用到的损失函数是(单个训练样本):逻辑回归的代价函数是对????个样本的损失函数求和然后除以????:梯度下降法通过最小化代价函数(成本函数) ????(????, ????)来训练的参数????和????:梯度下降法的形象化说明(这里

2020-11-23 10:52:23 1801

原创 深度学习-吴恩达-笔记-1-深度学习引言

什么是神经网络让我们从一个房价预测的例子开始讲起,如根据房子面积来预测房屋价格。如果你对线性回归很熟悉, 可以用一条直线来拟合这些数据。但是房屋的价格永远不会是负数的,因此,可以把价格为负数的部分变成零,让它最终在零结束。这条粗的蓝线最终的预测函数,用于根据房屋面积预测价格。在有关神经网络的文献中,你经常看得到这个函数。从趋近于零开始,然后变成一条直线。这个函数被称作 ReLU 激活函数,它的全称是 Rectified Linear Unit。 rectify(修正)可以...

2020-11-20 14:55:14 1754

原创 Mybatis抽象出通用方法

前言之前实现了HIbernate的通用方法,相对比较容易,但是Mybatis本身没有提供类似Hibernate的EntityManager类可以操作对象。Mybatis提供了注解的方式直接写sql,达到了对象到数据表的映射,但是缺少通用的增删改查的抽象。目前已经有了第三方通用的Mapper类:tk.mybatis.mapper.common.Mapper,虽然提供了一些通用方法,但是不够全面。本人在tk的Mapper上进行一次封装,扩展更多的通用方法,对于通用方法实现和继承BaseService

2020-11-20 14:36:03 2347

原创 HIbernate抽象出通用方法

前言Hibernate的目标是让开发者不用写sql就能实现对象到数据表的映射操作。当然,理想很美好,现实很骨感,在使用Hibernate时会遇到很多问题,如重复的增删改查、批量对象操作、分页等等,所以如果能抽象出这些通用方法,除了提高代码的整洁性,还能提高开发效率。实现1、通用接口定义:HibernateBaseDaoimport java.util.Collection;import java.util.List;/*** 数据库操作接口:Hibernate BaseDao

2020-11-20 14:29:52 1811

原创 架构设计-分而治之

生活中经常看到跟排序相关的例子,如:微博中排名前10的热点话题,学校中考试平均成绩排名前3的班级,NBA中比赛胜率排名前8的球队等。排序可以让重点数据凸显出来,从而更容易得到关注。开发中,我们也常遇到排序的问题,如对一个集合a(1),a(2),a(3),…,a(N)进行排序,然后取出前10个最大值。如果集合比较小,可以编写一段排序程序,并且在一台计算机上就可以快速执行完成。如果集合比较大(比如几十亿或几百亿个元素),这对一台计算机来说是非常吃力的,甚至无法完成计算。有一个比较好的方案是使用分治算法,先把一.

2020-11-20 14:16:02 1852

原创 架构设计-简单之美

我们遇到问题时,时不时会谷歌或百度一下,谷歌或百度能在毫秒级时间内响应结果网页,我们不禁会想谷歌或百度是不是使用了什么特别复杂厉害的算法,才能到达如此的快速响应。我们先看看建立一个搜索引擎大致需要做这样的几件事:自动下载互联网上的网页;建立快速有效的索引;根据相关性对网页进行公平准确的排序。一个高质量的搜索引擎要实现这3件事都不容易,但是呢,搜索引擎的基本原理还是相对简单的。我们平时使用的计算机可以处理复杂的逻辑计算,但其底层采用的是最简单的二进制计数方法,它只有两个数字:0和1。二进制除了是一种计数方法外

2020-11-20 14:13:18 1942 1

空空如也

空空如也

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

TA关注的人

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