- 博客(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
原创 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
1739
原创 零基础入门神经网络:从数学公式到通俗理解
初始参数=“随便拧的频率”,杂音大(损失L大);偏导数=“杂音的方向”(往左拧杂音变小,还是往右拧);学习率=“每次拧的幅度”(太小调得慢,太大容易跳过清晰频率);迭代更新=“一次次微调”,直到杂音最小(损失最小)。而我们推导的偏导数公式,就是帮我们精准判断“该往哪个方向调、调多少”的核心工具。通过这个案例可以发现:神经网络求权重和偏置,不是“一步到位”,而是“通过梯度下降逐步修正”——关键在于用链式法则求出偏导数,再按学习率迭代更新。
2025-09-19 10:22:35
1195
原创 梯度下降法详解
梯度下降法是机器学习和数学优化中最常用的算法之一,核心作用是快速找到函数的最小值。想象你站在山坡上想最快走到山底,梯度下降法就像指引你 “每次往最陡的下坡方向走一小步”,最终逐步逼近最低点。这个算法的优势在于:不需要求解复杂的方程,通过 “试错 + 修正” 的迭代过程就能找到最优解,尤其适合处理高维数据和复杂函数(比如神经网络的损失函数)。通过不断往梯度的反方向小步移动,逐步逼近函数的最小值。
2025-09-04 17:13:20
1143
原创 密度聚类(Density-Based Clustering)原理解析与数学案例
设数据集为Dx1x2xnDx1x2...xnxixi1xi2xidxixi1xi2...xid为d维数据点,两点间距离用欧氏距离dxixj∑k1dxik−xjk2dxixjk1∑dxik−xjk2概念数学定义通俗解释ε-邻域Nεxixj∈D∣dxixj≤εNεxix。
2025-08-25 13:51:25
1008
原创 层次聚类原理解析和数学案例分析
当簇包含多个样本时,需定义簇间距离以判断哪两个簇最相似。常用的簇间距离度量有5种,其数学推导和特性差异是层次聚类的核心:设两个簇CaC_aCa(含nan_ana个样本)和CbC_bCb(含nbn_bnb个样本),x∈Cax \in C_ax∈Cay∈Cby \in C_by∈Cbca1na∑x∈Caxcana1∑x∈CaxCaC_aCa。
2025-08-25 10:53:42
1177
原创 支持向量机的原理和案例解析
w⋅xb0(1)w⋅xb01ww1w2wnTww1w2...wnT是超平面的法向量(决定超平面方向);bbb是偏置项(决定超平面位置);xx1x2xnTxx1x2...xnT是样本点的特征向量。对于二分类问题,假设样本标签为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个自变量x1x2xpx1x2...xpyβ0β1x1β2x2βpxpεyβ0β1x1β2x2...βpxpεβ0\beta_0β0为截距项,β1βpβ1...βp为偏回归系数,εε为误差项(满足Eε0Eε0Varεσ2Varεσ2,且独立同分布)。
2025-07-30 16:55:14
710
原创 简单线性回归模型原理推导(最小二乘法)和案例解析
简单线性回归(单自变量)yiβ0β1xiεii12nyiβ0β1xiεii12...n通过最小二乘法得到两个正规方程,分别对应截距β0\beta_0β0和斜率β1\beta_1β1。利用β0\beta_0β0与均值的关系(β0yˉ−β1xˉβ0yˉ−β1xˉ),将其代入β1\beta_1β1的正规方程。通过离均差展开。
2025-07-30 15:01:45
1145
原创 逻辑回归算法原理与案例解析
交叉熵(Cross-Entropy)源于信息论,衡量两个概率分布的差异。在逻辑回归中,真实标签yyy可视为“退化的概率分布”(y1y=1y1表示“属于正类的概率为1”,y0y=0y0表示“属于正类的概率为0”),而yσzyσz是模型预测的正类概率,因此用交叉熵衡量两者的差异。
2025-07-23 11:06:47
970
原创 朴素贝叶斯算法原理与案例解析
本文系统介绍了朴素贝叶斯算法的核心原理与应用。该算法基于贝叶斯定理和特征独立性假设,通过计算先验概率和似然概率(重点区分离散特征和连续特征的不同处理方法)来预测类别。文章详细解析了离散特征(使用拉普拉斯平滑避免零概率)和连续特征(假设高斯分布)的似然计算方法,并通过垃圾邮件识别和鸢尾花分类两个案例演示了具体应用流程。朴素贝叶斯算法计算高效,适合文本分类等场景,但对特征独立性假设敏感。理解似然概率的计算逻辑是掌握该算法的关键。
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
1039
原创 Java设计模式总结
java常用七种设计模式总结(单例模式、工厂方法模式、建造者模式、策略模式、模板方法、责任链模式、代理模式、适配器模式、观察者模式)
2023-02-03 18:06:33
682
原创 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
1079
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关注的人
RSS订阅