- 博客(67)
- 收藏
- 关注
原创 集成模型:gbdt,xgboost,lightgbm,catboost
GBDT和XGBoost是两种基于决策树的集成学习算法。GBDT通过梯度下降逐步添加决策树来拟合负梯度(残差),最小化损失函数。其核心是每轮训练新树拟合当前模型的负梯度,并通过泰勒展开优化损失函数。XGBoost在GBDT基础上引入正则化项和二阶导数信息,使用更精确的二阶泰勒展开近似损失函数,并加入叶子节点权重和数量的正则化控制模型复杂度。XGBoost采用近似算法加速树分裂过程,通过分裂增益公式选择最优分割点。两种算法都使用CART树作为基学习器,但XGBoost在效率和精度上有所提升,具有更强的泛化能力
2025-12-19 23:36:24
878
原创 聚类方法(kmeans,DBSCAN,层次聚类,GMM,EM算法)
本文概述了常见的聚类算法及其核心思想。K-Means通过最小化簇内平方误差划分数据,但对初始中心敏感;K-means++优化初始中心选择;Bisecting K-means采用二分策略降低依赖性。DBSCAN基于密度发现任意形状簇,OPTICS通过可达距离改进多密度聚类。层次聚类通过树状结构合并或分裂簇,提供多种距离度量方式。这些算法各有优缺点,适用于不同数据场景。
2025-12-07 21:52:31
710
原创 最大似然估计(MLE)和MAP(最大后验概率)
伯努利分布(Bernoulli Distribution)是概率论中一种离散概率分布,描述只有两种可能结果的单次随机试验。MLE的核心思想是找到使观测数据出现概率最大的参数值。的先验分布是均匀分布时,即先验分布为常数时,最大后验估计与最大似然估计重合,因为此时。优化时需同时考虑似然和先验的权重(如L2正则对应高斯先验)。通过优化算法(如梯度下降)求解使对数似然最大的参数。MAP在MLE的基础上引入参数的先验分布。是第i个样本的标签(0或1),是待求参数(包含偏置项)。即:(当存在多个参数时,
2025-12-07 19:14:01
754
原创 知识蒸馏的基础概念
软标签(Soft Targets)教师模型在对输入 (x) 进行前向传播后,会得到一组logits(未归一化的得分)。通过在softmax前加入温度系数 (T>1) 进行温度软化piTexpziT∑jexpzjTpiT∑jexpzjTexpziT当 (T) 较大时,概率分布会变得更平滑,保留了类别之间的相对相似度信息(即“暗知识”),这比硬标签(one‑hot)提供了更丰富的学习信号。
2025-12-06 21:10:57
832
原创 bert常见的变体
BERT变体模型通过不同优化策略提升性能:ALBERT采用参数共享和嵌入分解降低参数量,适合轻量级场景;RoBERTa通过动态掩码和大批量训练增强泛化能力;ELECTRA引入生成器-判别器架构实现全token训练,提升效率;SpanBERT专为跨度任务设计,优化跨度掩码和边界目标。这些改进使BERT在效率、性能和任务适配性上得到全面提升。
2025-12-06 21:04:42
609
原创 常见的特征工程:数值型、类别型特征处理;特征构造、选择、文本特征处理、缺失值处理
为什么要做特征构造?原始特征无法直接表达业务规律,构造特征可以显式化非线性、交互、时间周期等信息,显著提升模型的与特征构造的常用坑有哪些?模型效果不提示,怎么办?特征工程是机器学习中数据预处理的核心环节,直接影响模型效果。
2025-11-30 22:32:27
982
1
原创 时间序列模型:AR、MA、ARMA、ARIMA、ARCH、GARCH总结
本文介绍了时间序列分析中的主要模型。首先阐述了平稳序列、白噪声、滞后项和误差项等基本概念。重点讲解了AR模型(利用历史值预测当前值)、MA模型(考虑历史误差影响)及其组合ARMA模型。对于非平稳序列,介绍了通过差分处理的ARIMA模型。在波动性建模方面,详细说明了ARCH模型(基于历史残差平方)和GARCH模型(同时考虑历史残差和条件方差),并比较了两者的特点:GARCH通过引入条件方差的自回归部分,能够以更少参数捕捉长期波动特征。最后指出GARCH模型实质是对条件方差建立ARMA过程,与均值建模的ARMA
2025-11-30 22:06:43
910
原创 近似最近邻查找的几种方法
近似最近邻查找(Approximate Nearest Neighbor Search, ANNS)是一种在高维空间中查找与查询点距离最近的若干个点的技术。与精确最近邻查找不同,近似最近邻查找允许一定程度的误差,以换取更高的查询效率和更低的计算成本。
2024-06-24 14:50:33
1764
1
原创 长尾问题定义及如何解决长尾分布问题
长尾问题(Long Tail Problem)是指在某些数据分布中,少数类别(或事件)出现的频率非常高,而多数类别(或事件)出现的频率非常低。这个现象在很多实际应用中都存在,比如电子商务中的商品销售、自然语言处理中的词频分布、推荐系统中的用户行为等。在长尾分布中,头部(高频部分)占据了大部分的关注和资源,而尾部(低频部分)包含了大量的类别,这些类别虽然单独出现的频率低,但总量却非常大。解决长尾问题的关键在于如何有效地处理这些低频类别,以充分利用长尾部分的数据价值。
2024-06-24 11:57:56
9370
原创 NLP中常见的tokenize方式及token类型
不同的任务和应用可能需要不同类型的tokens。例如,在机器翻译中可能会使用子词tokens来处理未知词汇,而在文本分类任务中,则可能更倾向于使用单词tokens。在选择tokenizer时,需要考虑文本的特点、处理任务的需求以及计算资源。通常,基于机器学习的tokenizer虽然性能较好,但计算成本也更高,而简单的基于规则的tokenizer则适用于快速处理或资源有限的场景。Tokenizer是一种工具,用于将文本分割成更小的单元,通常是单词、短语或其他有意义的符号,这些单元称为tokens。
2024-04-30 10:06:23
2270
原创 深度学习中的归一化:BN,LN,IN,GN的优缺点
归一化在深度学习中的应用包括批量归一化(Batch Normalization)、层归一化(Layer Normalization)、组归一化(Group Normalization)和实例归一化(Instance Normalization)等。这些技术在不同的网络结构和任务中有着广泛的应用,是现代深度学习架构中不可或缺的一部分。Batch Norm:把每个Batch中,每句话的相同位置的字向量看成一组做归一化。Layer Norm:在每一个句子中进行归一化。Instance Norm:每一个字的字向量的
2024-04-29 19:58:08
1712
原创 机器学习中的线性模型和非线性模型
线性模型通常易于解释,计算效率较高,而非线性模型则可以模拟更加复杂的数据结构,但可能需要更多的数据和计算资源,并且模型的可解释性可能较差。在实际应用中,选择哪种模型通常取决于数据的特性和所要解决的问题。线性模型是基于线性假设的模型,即输出是输入特征的线性组合。非线性模型可以捕捉数据中的非线性关系。
2024-04-28 19:36:50
1786
1
原创 SVM中常用的核函数及适用场景
核函数(Kernel functions)在机器学习中尤其是在支持向量机(SVM)中扮演着重要的角色,它们能够将数据映射到高维空间,从而解决非线性问题。在实际应用中,选择核函数通常取决于问题的具体需求和数据集的特性。通常需要通过交叉验证等方法来调整核函数的参数,以达到最佳的模型性能。
2024-04-28 19:35:51
4069
原创 集成学习——随机森林
随机森林是一种集成学习方法,它通过构建多个决策树并将它们的预测结果进行汇总来做出最终的决策。每棵树都是在数据集的一个随机子样本上训练得到的,并且在分裂节点时只考虑特征的一个随机子集。这种随机性有助于提高模型的泛化能力,减少过拟合。最终的预测结果是通过对所有树的预测进行投票(分类问题)或平均(回归问题)得到的。
2024-04-19 18:34:28
1122
原创 机器学习——逻辑回归
总结来说,交叉熵损失函数在逻辑回归中被广泛采用,是因为它与逻辑回归模型的概率输出相匹配,可以提供良好的梯度信息,保证了损失函数的凸性。
2024-04-19 18:18:30
629
原创 二分类模型来解决多分类问题
One-vs-Rest,也称为 One-vs-All,是将多分类问题分解为多个二分类问题的一种方法。对于有 ( N ) 个类别的多分类问题,OvR策略会创建 ( N ) 个二分类模型,每个模型负责将一个类别与其它所有类别区分开来。Error-Correcting Output Codes是一种更复杂的策略,它通过创建多个二分类器,并将多类标签编码为二进制串来工作。One-vs-One策略是另一种解决多分类问题的方法,它通过在每对类别间训练一个二分类模型来工作。个类别的问题,会训练。
2024-04-10 15:22:03
1106
原创 常用的回归损失函数
对于选择损失函数,需要考虑模型的具体需求和数据的特点。例如,如果数据包含许多异常值,可能会选择Huber损失或MAE来减少异常值的影响。如果模型需要惩罚大的误差,MSE或RMSE可能是更好的选择。
2024-04-10 15:18:47
1467
原创 统计学中不同相关系数的比较
Pearson是对线性关系的度量,对于非线性关系和非正态分布的数据可能不是很敏感。Kendall和Spearman是非参数方法,它们对于非正态分布的数据和非线性关系更为稳健,但通常具有较低的统计效能。Spearman通常对异常值更为敏感,而Kendall在处理小样本数据或有许多重复值的数据时更为可靠。
2024-03-15 14:31:29
1631
原创 leetcode1079:游戏玩法分析——求留存率
我们将日期 x 的 第一天留存率 定义为:假定安装日期为 X 的玩家的数量为 N ,其中在 X 之后的一天重新登录的玩家数量为 M,M/N 就是第一天留存率,四舍五入到小数点后两位。(player_id,event_date)是此表的主键(具有唯一值的列的组合)编写解决方案,报告所有安装日期、当天安装游戏的玩家数量和玩家的 第一天留存率。将以上进行综合,并用t3中的第二天仍登录数量/首次登录的玩家数量,等于留存率。玩家的 安装日期 定义为该玩家的第一个登录日。这张表显示了某些游戏的玩家的活动情况。
2024-02-05 17:25:06
807
原创 T618:sql行转列求学生地理报告
编写解决方案实现对大洲(continent)列的 透视表 操作,使得每个学生按照姓名的字母顺序依次排列在对应的大洲下面。
2024-02-05 15:47:08
387
原创 sql求解连续两个以上的空座位
按照seat_id排序(上面已经有序),并赋予排名,返回按 seat_id 升序排序 的结果表。A:我们首先找出所有的空座位:1,3,4,5。测试用例的生成使得两个以上的座位连续可用。Q:查找电影院所有连续可用的座位。,因此可以分为以下几步。结果表格式如下所示。
2024-02-04 14:30:48
1626
原创 python求解中位数
如果数组长度n为奇数,则(n+1)/2处对应值为中位数,如果数组下标从0开始,还需要减去1。如果数组长度n为偶数,则n/2,n/2+1两个位置数的平均值为中位数。首先将数组nums进行排序,然后找到中间位置的数值。假设中位数为x,并采用大小根堆来存储元素。
2024-02-03 16:10:03
3546
原创 sql求中位数
中位数是指有序数列中,位于的数的值若为奇数,则中间数开始位置=结束位置若为偶数,则中位数结束位置-开始位置=1即求解公司员工薪水的中位数。
2024-02-03 11:52:47
5364
原创 python文件输入读取——ACM格式
python读取多行输入的3中方式,sys.stdin,sys.stdin.readline(),input()
2024-02-02 13:10:40
907
原创 Bert详解
BERT的网络架构使用的是《Attention is all you need》中提出的多层Transformer结构。其最大的特点是抛弃了传统的RNN和CNN,通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP中棘手的长期依赖问题。Transformer的结构在NLP领域中已经得到了广泛应用。
2024-01-17 14:23:09
2098
原创 transformer详解
介绍transformer中各个组件的原理,包括attention,resnet,layer normalization,position encoding等
2024-01-16 18:19:41
1384
原创 Collections模块中函数应用
Collections模块提供了一系列的容器数据类型,这些数据类型是对Python标准数据类型如字典、列表、集合和元组的扩展。
2024-01-02 19:46:16
434
原创 leetcode1360:日期之间隔几天
输入:date1 = “2019-06-29”, date2 = “2019-06-30”输入:date1 = “2020-01-15”, date2 = “2019-12-31”日期以字符串形式给出,格式为 YYYY-MM-DD,如示例所示。给定的日期是 1971 年到 2100 年之间的有效日期。请你编写一个程序来计算两个日期之间隔了多少天。
2023-12-30 23:14:44
469
原创 给定数(日期),返回N天前(后)的日期
给定一个由数字组成的字符串,判断是否为日期类型数据(year-month-day),如果为日期,则返回N天前或者N天后的日期,如果不是日期类型数据,返回False。
2023-12-30 22:41:45
643
原创 LLM——检索增强生成RAG
RAG 是一种结合了检索(Retrieval)和生成(Generation)的自然语言处理技术。它旨在通过先从一个大型的文档数据库中检索相关信息,然后基于检索到的信息生成回答或内容,从而增强语言模型的能力。
2023-12-28 19:33:42
1042
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅