自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 中心差分法求导数

函数fxf(x)fx在点x0x_0x0​处的导数,是自变量增量Δx→0Δx→0f′x0lim⁡Δx→0fx0Δx−fx0Δxf′x0​Δx→0lim​Δxfx0​Δx−fx0​​这是前向差分法的理论基础,但它只用到了x0x_0x0​右侧的点,误差相对较大。

2025-12-25 11:05:08 759

原创 机器学习中偏差和方差的通俗理解

我们将打靶案例与和。

2025-12-03 11:29:46 312

原创 SVM求解完整推导及数学案例(含SMO与参数还原)

本文详细推导了支持向量机(SVM)的基本型求解过程。首先构建了带约束的凸二次规划原问题,通过引入拉格朗日乘数构造拉格朗日函数,并对权重向量w和偏置b求偏导得到关键表达式。然后通过代入化简推导出对偶问题,并采用SMO算法进行优化求解,每次迭代仅更新两个拉格朗日乘数。最后还原出最优参数w和b,并通过一个三样本的数值案例完整演示了计算过程,包括内积计算、SMO求解和参数还原,最终得到分类超平面方程0.75x₁+0.5x₂-3.5=0。整个推导过程系统性地展示了SVM从理论到实现的完整求解路径。

2025-12-02 10:57:12 1007

原创 线性回归中的L2正则化:基于梯度下降法的求解与解析

L2正则化(岭回归)是线性回归中解决过拟合的经典方法,其核心逻辑是通过在损失函数中添加权重向量的L2范数平方惩罚项,限制权重参数的绝对值大小。从动机上,L2正则化针对过拟合的本质(权重极端值、特征冗余),通过惩罚大权重迫使模型学习通用规律;从数学上,梯度下降的更新公式中引入了权重的惩罚项,使每次迭代时权重都被“收缩”,避免过度增长;从效果上,L2正则化能有效抑制噪声特征的影响,提升模型泛化能力,同时让梯度下降的迭代过程更稳定、收敛更快;实际应用中,需通过交叉验证选择最优λ\lambdaλ。

2025-11-11 11:10:24 665

原创 一文搞懂泰勒展开式

sinxsinxsinx的泰勒展开,本质是用“只含加减乘”的多项式,在x0x=0x0附近“模仿”sinxsinxsinx的取值,而且能通过增加项数控制精度。计算器、计算机里算sinxsinxsinx,底层用的就是这个思路~

2025-11-07 14:11:08 1743

原创 零基础入门神经网络:从数学公式到通俗理解

初始参数=“随便拧的频率”,杂音大(损失L大);偏导数=“杂音的方向”(往左拧杂音变小,还是往右拧);学习率=“每次拧的幅度”(太小调得慢,太大容易跳过清晰频率);迭代更新=“一次次微调”,直到杂音最小(损失最小)。而我们推导的偏导数公式,就是帮我们精准判断“该往哪个方向调、调多少”的核心工具。通过这个案例可以发现:神经网络求权重和偏置,不是“一步到位”,而是“通过梯度下降逐步修正”——关键在于用链式法则求出偏导数,再按学习率迭代更新。

2025-09-19 10:22:35 1195

原创 梯度下降法详解

梯度下降法是机器学习和数学优化中最常用的算法之一,核心作用是快速找到函数的最小值。想象你站在山坡上想最快走到山底,梯度下降法就像指引你 “每次往最陡的下坡方向走一小步”,最终逐步逼近最低点。这个算法的优势在于:不需要求解复杂的方程,通过 “试错 + 修正” 的迭代过程就能找到最优解,尤其适合处理高维数据和复杂函数(比如神经网络的损失函数)。通过不断往梯度的反方向小步移动,逐步逼近函数的最小值。

2025-09-04 17:13:20 1143

原创 密度聚类(Density-Based Clustering)原理解析与数学案例

设数据集为Dx1x2xnDx1​x2​...xn​xixi1xi2xidxi​xi1​xi2​...xid​为d维数据点,两点间距离用欧氏距离dxixj∑k1dxik−xjk2dxi​xj​k1∑d​xik​−xjk​2​概念数学定义通俗解释ε-邻域Nεxixj∈D∣dxixj≤εNε​xi​x。

2025-08-25 13:51:25 1009

原创 层次聚类原理解析和数学案例分析

当簇包含多个样本时,需定义簇间距离以判断哪两个簇最相似。常用的簇间距离度量有5种,其数学推导和特性差异是层次聚类的核心:设两个簇CaC_aCa​(含nan_ana​个样本)和CbC_bCb​(含nbn_bnb​个样本),x∈Cax \in C_ax∈Ca​y∈Cby \in C_by∈Cb​ca1na∑x∈Caxca​na​1​∑x∈Ca​​xCaC_aCa​。

2025-08-25 10:53:42 1177

原创 支持向量机的原理和案例解析

w⋅xb0(1)w⋅xb01ww1w2wnTww1​w2​...wn​T是超平面的法向量(决定超平面方向);bbb是偏置项(决定超平面位置);xx1x2xnTxx1​x2​...xn​T是样本点的特征向量。对于二分类问题,假设样本标签为y∈1−1y∈1−1w⋅xb0w⋅xb0(即y1y=+1y1w⋅xb0w⋅xb0(即y−1。

2025-08-15 16:47:31 576

原创 聚类分析原理解析与案例

K-Means通过“迭代分配样本→更新中心”的过程,不断优化聚类中心,最终使簇内样本尽可能集中(SSE最小)。其优点是简单高效,适合大规模数据;缺点是需要手动指定。

2025-08-12 11:24:19 1099

原创 多元线性回归方程的原理解析与案例

多元线性回归用于描述因变量yyy与ppp个自变量x1x2xpx1​x2​...xp​yβ0β1x1β2x2βpxpεyβ0​β1​x1​β2​x2​...βp​xp​εβ0\beta_0β0​为截距项,β1βpβ1​...βp​为偏回归系数,εε为误差项(满足Eε0Eε0Varεσ2Varεσ2,且独立同分布)。

2025-07-30 16:55:14 711

原创 简单线性回归模型原理推导(最小二乘法)和案例解析

简单线性回归(单自变量)yiβ0β1xiεii12nyi​β0​β1​xi​εi​i12...n通过最小二乘法得到两个正规方程,分别对应截距β0\beta_0β0​和斜率β1\beta_1β1​。利用β0\beta_0β0​与均值的关系(β0yˉ−β1xˉβ0​yˉ​−β1​xˉ),将其代入β1\beta_1β1​的正规方程。通过离均差展开。

2025-07-30 15:01:45 1146

原创 逻辑回归算法原理与案例解析

交叉熵(Cross-Entropy)源于信息论,衡量两个概率分布的差异。在逻辑回归中,真实标签yyy可视为“退化的概率分布”(y1y=1y1表示“属于正类的概率为1”,y0y=0y0表示“属于正类的概率为0”),而yσzy​σz是模型预测的正类概率,因此用交叉熵衡量两者的差异。

2025-07-23 11:06:47 971

原创 朴素贝叶斯算法原理与案例解析

本文系统介绍了朴素贝叶斯算法的核心原理与应用。该算法基于贝叶斯定理和特征独立性假设,通过计算先验概率和似然概率(重点区分离散特征和连续特征的不同处理方法)来预测类别。文章详细解析了离散特征(使用拉普拉斯平滑避免零概率)和连续特征(假设高斯分布)的似然计算方法,并通过垃圾邮件识别和鸢尾花分类两个案例演示了具体应用流程。朴素贝叶斯算法计算高效,适合文本分类等场景,但对特征独立性假设敏感。理解似然概率的计算逻辑是掌握该算法的关键。

2025-07-22 20:04:04 1111

原创 K 近邻算法(K-Nearest Neighbors, KNN)详解及案例

K近邻算法(KNN)是一种基于相似性的监督学习算法,通过计算新样本与训练样本的距离,选择K个最近邻进行预测。算法核心涉及距离度量(如欧氏距离)、K值选择(需平衡过拟合与欠拟合)和决策规则(多数投票或平均值)。KNN简单直观,但对计算资源要求高,且对噪声和类别不平衡敏感。文中以电影分类为例,演示了K=3时通过计算距离和多数投票预测新电影类型的完整过程。该算法适用于推荐系统等场景,实际应用中需注意优化计算效率。

2025-07-22 17:23:50 666

原创 分类决策树的分裂特征选择:公式、计算与案例

文章摘要: 分类决策树通过选择最优分裂特征来提高样本纯度,主要采用信息增益和基尼不纯度两种指标。信息增益基于熵的变化,计算分裂前后信息混乱度的减少;基尼不纯度则衡量随机抽样时类别不一致的概率。以泰坦尼克号10名乘客数据为例,分别计算"性别"和"舱位等级"这两个特征的分裂效果。结果均显示"性别"特征的信息增益更高(0.61>0.152)、加权基尼值更低(0.167<0.4),验证了女性存活率更高的历史事实。两种方法都表明性别是更有效的分类

2025-07-22 14:14:39 1040

原创 【MapReduce源码分析】

yarnChild启动类。yarnChild启动类。

2023-06-01 20:04:23 761

原创 HDFS源码解析

HDFS NameNode、DataNode启动流程、HDFS元数据管理流程、写数据流程源码详解

2023-05-26 13:54:38 1969

原创 Java设计模式总结

java常用七种设计模式总结(单例模式、工厂方法模式、建造者模式、策略模式、模板方法、责任链模式、代理模式、适配器模式、观察者模式)

2023-02-03 18:06:33 682

原创 零拷贝总结

零copy总结

2022-10-10 19:42:31 570

原创 RPC实现和原理解析

RPC 又名远程过程调用协议RPC(Remote Procedure Call Protocol)

2022-09-30 11:24:36 3230

原创 动态代理类的实现和源码解析

动态代理类的实现和源码分析

2022-09-19 17:45:04 701

原创 clickhouse 在客群和画像中的应用

clickhouse 基于标签高表的雾化视图在客群和画像中的应用说明:注意:基于ClickHouse标签高表对客群进行画像洞察的画像应用对客群进行画像洞察,求出客群下面不同的标签对应的客群画像基于ClickHouse JDBC对BitMap的插入操作测试 ClickHouse 版本号 21.8.12.29,经测试 在 21.8.12.1 的版本中插入失败。.........

2022-06-16 19:49:57 865

原创 Akka模拟Spark Master和Worker通信

Akka模拟Spark Master和Worker通信案例案例意义需求分析Spark Master和Worker通信案例Master代码Worker代码样例类结果学习Saprk的源代码,那么对Akka的通信原理一定要熟悉,我们通过Akka模拟Spark Master和Worker之间的通信过程,从而深入Spark的Master和Worker的通讯机制。学习Spark Master和Worker如何通信之前需要了解 Akka网络编程案例.案例意义深入理解Spark的Master和Worker的通讯机制

2021-02-20 15:37:35 474 4

原创 Akka网络编程案例

Akka网络编程案例需求介绍功能实现添加Maven依赖客户端代码服务端代码样例类执行结果Akka作为spark通信的基础,了解Akka的网络编程有助于了解spark是如何通信的。Akka基础请点击链接需求介绍#mermaid-svg-kXCN1vmGr5m1Orxl .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid

2021-02-20 14:54:07 310

原创 并发编程模型Akka

并发编程模型Akka简介Akka 简介Akka 介绍Akka 用于解决什么问题Actor模型Actor模型工作机制Actor应用实例Maven依赖单Actor通信案例多actor通信案例Akka 简介Akka 介绍Akka 是编写并发程序的框架,它提供了一种称为Actor的并发模型,其粒度比线程更小,你可以在系统中启用大量的Actor。Akka用Scala语言编写,同时提供了Scala和Java的开发接口。Akka的出现使得程序员不再过多的考虑线程、锁和资源竞争的问题,可以轻松的写出高效稳

2021-02-19 17:08:41 728

原创 LeetCode数值的整数次方

剑指Offer 16. 数值的整数次方说明Java代码说明实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。Java代码public class Offer_16 { pub

2021-02-18 16:51:35 236

原创 Presto简介

Presto简介Presto概念Presto架构Presto优缺点Presto概念Presto是一个开源的分布式的SQL查询引擎,数据量支持GB到PB,主要用于处理秒级查询的场景。虽然Presto可以解析SQL,但它不是一个标准的数据库,不是MySQL、Oracle的替代品。主要包括下面几个组件:Server TypesPresto服务器有两种类型:协调器(Coordinator)和工作器(Worker)。以下部分说明了两者之间的区别。CoordinatorPresto协调器是负责解析语句

2021-01-04 20:17:51 634 2

原创 Presto优化

Presto优化Presto优化之数据存储Presto优化之查询SQLPresto优化之数据存储合理设置分区与Hive类似,Presto会根据元数据信息读取分区数据,合理的分区能减少Presto数据读取量,提升查询性能。使用列式存储Presto对ORC文件读取做了特定优化,因此在Hive中创建Presto使用的表时,建议采用ORC格式存储。相对于Parquet,Presto对ORC支持更好。使用压缩数据压缩可以减少节点间数据传输对IO带宽压力,对于即席查询需要快速解压,建议采用Snappy压

2021-01-04 19:57:05 315

原创 presto内存

presto内存presto内存池为什么使用Reserved Pool内存呢?内存管理presto内存池Presto把整个内存划分成三个内存池,分别是System Pool ,Reserved Pool, General Pool。System Pool保留给系统使用的,默认为40%的内存空间留给系统使用。System Pool用于在机器之间传递数据,在内存中维护buffer等功能。Reserved Pool和General Pool 是用来分配query运行时内存的。其中大部分的query都是使用

2021-01-04 16:44:17 374

原创 Flink连接Kafka

Flink连接Kafka的Scala代码Maven依赖<dependencies> <!--flink模块引入--> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-scala_2.11</artifactId> <!--

2020-11-17 17:19:42 1053

原创 Flink连接Hive的Demo

使用flink连接hive调试了大半天,主要是官网的文档很不详细(缺少各种maven依赖),做个记录,供大家参考。添加Maven依赖 <!--flink_hive 模块引入--> <!-- Flink Dependency --> <dependency> <groupId>org.apache.flink</groupId> <artifactId&g

2020-11-12 10:42:04 874

原创 ClickHouse安装与使用

1 ClickHouse简介ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。2 ClickHouse安装2.1 安装前准备2.1.1 取消打开文件数限制在/etc/security/limits.conf和/etc/security/limits.d/90-nproc.conf这2个文件的末尾加入一下内容:在文件末尾添加:* soft nofile 65536 * hard

2020-11-12 09:32:22 1080 1

原创 lightgbm分类问题的实例

lightgbm学习代码自己学习代码仅供参考import numpy as npimport pandas as pdfrom sklearn.preprocessing import LabelEncoderfrom sklearn.model_selection import train_test_split, GridSearchCVimport lightgbmfrom sklearn.metrics import *import matplotlib.pyplot as plti

2020-10-23 15:58:05 1559

原创 环形队列的java实现

数组模拟环形队列分析说明1.尾索引的下一个为头索引时表示队列满,即将队 列容量空出一个作为约定,这个在做判断队列满的 时候需要注意 (rear + 1) % maxSize == front 满2.rear == front 空环形队列数组的实现/** * @author zl * @create 2020--09--03--9:02 */public class CicleArrayQueueDemo { public static void main(String[] ar

2020-09-04 14:57:30 213

原创 单链表的java实现及其常用操作

单链表的实现单链表介绍1.链表是以节点的方式来存储,是链式存储2.每个节点包含 data 域, next 域:指向下一个节点.3.链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表的java实现import java.util.Stack;/** * @author zl * @create 2020--09--03--10:17 */public class LinkedListDemo { public static void main(String

2020-09-04 14:45:28 189

原创 双向链表实现

双向链表实现双向链表和单链表的比较1.单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。2.单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以单链表删除节点时,总是找到删除节点的前一个节点。双向链表java实现代码/** * @author zl * @create 2020--09--03--16:37 */public class DoubleLinkedList { public static void main(String[]

2020-09-04 14:35:50 296

原创 约瑟夫问题

约瑟夫问题约瑟夫问题Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。思路用一个不带头结点的循环链表来处理Josephu 问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中

2020-09-04 14:28:14 317

原创 SparkStreaming有状态转化操作案例

SparkStreaming有状态转化操作案例SparkStreaming有状态转化操作主要有两种类型滑动窗口和updateStateByKey()滑动窗口Window Operations可以设置窗口的大小和滑动窗口的间隔来动态的获取当前Steaming的允许状态。基于窗口的操作会在一个比 StreamingContext 的批次间隔更长的时间范围内,通过整合多个批次的结果,计算出整个窗口的结果。案例一每间隔十秒都计算前三十秒的数据实现wordcountimport org.apa

2020-08-03 18:02:07 372

空空如也

空空如也

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

TA关注的人

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