- 博客(123)
- 收藏
- 关注

原创 LightGBM 的完整解释 - 最快的梯度提升模型
在寻找最佳特征值来分割树节点时,LightGBM使用特征值直方图,并尝试所有直方图bin值,而不是尝试所有可能的特征值,因此可以减少寻找最佳特征吐出值的时间和计算量。例如,给定下面的年龄特征,将直方图离散特征值放入不同的范围箱中,因此我们可以使用像Age⩽30,Age⩽40,,,,Age⩽100这样的吐槽标准,而不是尝试像Age这样的所有可能的年龄值⩽31、年龄⩽32 等。一般来说,GOSS的主要思想是,在训练下一个集成树之前,我们保留梯度较大的训练实例,并丢弃一些梯度较小的训练实例。
2023-10-29 21:23:24
6265

原创 XGboost进行时间序列预测
XGBoost是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。它在 Gradient Boosting 框架下实现机器学习算法。XGBoost提供并行树提升(也称为GBDT,GBM),可以快速准确地解决许多数据科学问题。相同的代码在主要的分布式环境(Hadoop,SGE,MPI)上运行,并且可以解决数十亿个示例之外的问题。
2020-11-19 10:39:06
7015
3
原创 6-3.使用GPU训练模型
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。深度学习的训练过程常常非常耗时,一个模型训练几个小时是家常便饭,训练几天也是常有的事情,有时候甚至要训练几十天。训练过程的耗时主要来自于两个部分,一部分来自数据准备,另一部分来自参数迭代。
2024-07-14 15:45:14
1056
原创 5-4.TensorBoard可视化
Pytorch中利用TensorBoard可视化的大概过程如下:首先在Pytorch中指定一个目录创建一个torch.utils.tensorboard.SummaryWriter日志写入器。然后根据需要可视化的信息,利用日志写入器将相应信息日志写入我们指定的目录。最后就可以传入日志目录作为参数启动TensorBoard,然后就可以在TensorBoard中愉快地看片了。我们主要介绍Pytorch中利用TensorBoard进行如下方面信息的可视化的方法。
2024-07-11 22:27:50
1121
原创 5-3.损失函数
自定义损失函数接收两个张量y_pred,y_true作为输入参数,并输出一个标量作为损失函数值。也可以对nn.Module进行子类化,重写forward方法实现损失的计算逻辑,从而得到损失函数的类的实现。下面演示两个比较著名的范例。下面是一个Focal Loss的自定义实现示范。Focal Loss是一种对binary_crossentropy的改进损失函数形式。它在样本不均衡和存在较多易分类的样本时相比binary_crossentropy具有明显的优势。
2024-07-10 22:51:15
1174
原创 5-2.模型层
如果Pytorch的内置模型层不能够满足需求,我们也可以通过继承nn.Module基类构建自定义的模型层。实际上,pytorch不区分模型和模型层,都是通过继承nn.Module进行构建。因此,我们只要继承nn.Module基类并实现forward方法即可自定义模型层。下面是Pytorch的nn.Linear层的源码,我们可以仿照它来自定义模型层。
2024-07-10 16:36:12
804
原创 5-1.Dataset和DataLoader
下面我们通过另外一种方式,即继承 torch.utils.data.Dataset 创建自定义数据集的方式来对 cifar2构建 数据管道。
2024-07-09 18:47:34
1140
原创 4-3.nn.functional和nn.Module
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-07-09 10:36:32
891
原创 4-2.张量的数学运算
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-07-08 21:17:12
1081
原创 2-3.动态计算图
Pytorch的计算图由节点和边组成,节点表示张量或者Function,边表示张量和Function之间的依赖关系。Pytorch中的计算图是动态图。这里的动态主要有两重含义。第一层含义是:计算图的正向传播是立即执行的。无需等待完整的计算图创建完毕,每条语句都会在计算图中动态添加节点和边,并立即执行正向传播得到计算结果。第二层含义是:计算图在反向传播后立即销毁。下次调用需要重新构建计算图。
2024-07-02 17:08:51
966
原创 1-4.时间序列数据建模流程范例
使用Pytorch通常有三种方式构建模型:使用nn.Sequential按层顺序构建模型,继承nn.Module基类构建自定义模型,继承nn.Module基类构建模型并辅助应用模型容器进行封装。此处选择第二种方式构建模型。# 3层lstmreturn yprint(net)Net(
2024-07-01 21:15:37
1297
原创 1-1.结构化数据建模流程范例
使用Pytorch通常有三种方式构建模型:使用nn.Sequential按层顺序构建模型,继承nn.Module基类构建自定义模型,继承nn.Module基类构建模型并辅助应用模型容器进行封装。此处选择使用最简单的nn.Sequential,按层顺序模型。
2024-06-30 22:07:15
1074
原创 XGboost详解
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。XGBoost(eXtreme Gradient Boosting)是一个高效的机器学习库,也是一种基于梯度提升决策树(Gradient Boosting Decision Tree)的集成学习算法,专为提升树算法的性能和速度而设计。
2024-06-28 10:47:20
621
原创 CatBoost原理介绍
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-06-28 09:53:49
1041
原创 LightGBM算法与XGboost对比
论文地址:《LightGBM: A Highly Efficient Gradient Boosting Decision Tree》:https://proceedings.neurips.cc/paper_files/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf。
2024-06-27 19:11:19
1781
原创 为什么LightGBM如此之快
文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-05-30 11:28:25
806
原创 DataFrame—数据汇总8
我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-05-27 19:30:00
909
原创 DataFrame—数据汇总4
我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
2024-05-24 18:53:23
893
原创 测试PySpark
在这里,通过它写pyspark单元测试,看这个代码通过PySpark built,下载该目录代码,查看JIRA 看板票的pyspark测试
2023-10-16 21:00:00
1596
原创 Spark上使用pandas API快速入门
这是 Spark 上的 pandas API 的简短介绍,主要面向新用户。本笔记本向您展示 pandas 和 Spark 上的 pandas API 之间的一些关键区别。这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。通过传递可转换为类似系列的对象字典来创建 pandas-on-Spark DataFrame。从 Spark DataFrame 创建 pandas-on-Spark DataFrame。以下是如何显示下面框架中的顶行。
2023-10-14 01:00:00
1121
原创 PySpark 概述
PySpark 是 Apache Spark 的 Python API。它使您能够使用Python在分布式环境中执行实时、大规模的数据处理。它还提供了一个 PySpark shell,用于交互式分析您的数据。
2023-10-12 21:36:03
836
原创 sklearn Preprocessing 数据预处理功能
scikit-learn`(或`sklearn`)的数据预处理模块提供了一系列用于处理和准备数据的工具。- `StandardScaler`: 将数据进行标准化,使得每个特征的均值为0,方差为1。- `MinMaxScaler`: 将数据缩放到指定的最小值和最大值之间(通常是0到1)。- `RobustScaler`: 对数据进行缩放,可以抵抗异常值的影响。- `RFE`(递归特征消除):逐步选择特征,通过迭代来识别最重要的特征。- `MaxAbsScaler`: 将数据按特征的绝对值最大缩放。
2023-08-23 22:15:00
1280
原创 Hive on Spark调优(大数据技术6)
若参与join的表均为分桶表,且关联字段为分桶字段,且分桶字段是有序的,且大表的分桶数量是小表分桶数量的整数倍。此时,就可以以分桶为单位,为每个Map分配任务了,Map端就无需再缓存小表的全表数据了,而只需缓存其所需的分桶。Map端负责读取参与join的表的数据,并按照关联字段进行分区,将其发送到Reduce端,Reduce端完成最终的关联操作。若参与join的表中,有n-1张表足够小,Map端就会缓存小表全部数据,然后扫描另外一张大表,在Map端完成关联操作。162900000000(约160g)
2023-05-19 23:30:00
1211
原创 Hive on Spark调优(大数据技术3)
在将NodeManager的总内存平均分配给每个Executor,最后再将单个Executor的内存按照大约10:1的比例分配到spark.executor.memory和spark.executor.memoryOverhead。动态分配可根据一个Spark应用的工作负载,动态的调整其所占用的资源(Executor个数)。此处的Executor个数是指分配给一个Spark应用的Executor个数,Executor个数对于Spark应用的执行速度有很大的影响,所以Executor个数的确定十分重要。
2023-05-17 07:30:00
1202
原创 Leetcode题目汇总
文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。1) Array题型733.Flood Fill(对二维数组进行转换) 240.Search2D(查找数字) 57. Insert Interval (向一个区间中插入一个区间) 42. Trapping Rain Water(能装多少水问题..
2021-09-29 16:08:27
230
原创 MMOE原理介绍
神经网络的多任务学习已成功用于工业界的大规模应用程序中,例如在视频推荐中,只考虑点击转化率时,会倾向推荐包含标题党、擦边海报的视频;只考虑完成度时,会倾向推荐时间比较短的视频等等。而这些倾向都会影响用户体验,并且可能导致业务长期目标的下降。因此,大家开始尝试引入多个相互关联但又不一致的目标来进行综合考虑建模,并且实践表示,多任务学习在推荐系统中能够提升上下文推荐的效果。但是,常用的多任务模型的预测质量通常对任务之间的关系很敏感,因此,研究特定于任务的目标与任务间关系之间的建模折衷至关重要。...
2021-09-27 21:53:58
8709
1
原创 DataFrame-数据处理1
文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。相关文章:python多线程基础1 python多线程基础2 python线程基础3文章目录:安装fbprophet报错问题:解决方法:安装fbprophet报错问题:Installing collected package..
2021-04-13 10:15:14
431
原创 时间序列数据建模预测新冠病毒
文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。相关文章:LeetCode:55. Jump Game(跳远比赛) Leetcode:300. Longest Increasing Subsequence(最大增长序列) LeetCode:560. Subarray Sum Equals ...
2020-07-10 16:36:46
993
原创 找出数组中K个最小数问题
文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。相关文章:LeetCode:55. Jump Game(跳远比赛) Leetcode:300. Longest Increasing ...
2020-03-20 13:53:23
1781
原创 LeetCode:1071.GreatestCommon(最大重复子串)
对于字符串S 和T,只有在 S = T + ... + T(T与自身连接 1 次或多次)时,我们才认定“T 能除尽 S”。返回字符串X,要求满足X 能除尽 str1 且X 能除尽 str2。示例 1:输入:str1 = "ABCABC", str2 = "ABC"输出:"ABC"示例 2:输入:str1 = "ABABAB", str2 = "ABAB"输...
2020-02-15 22:19:06
310
1
原创 LeetCode: 14.Longest Common(最长公共起始串)
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。java实现方式1:package...
2020-02-13 23:53:16
205
1
原创 LeetCode:925.Is Long Pressed(是不是长压字符串)
你检查键盘的键入字符。 如果可能是你的朋友姓名,则返回True,其中一些字符(可能没有)被长按。例如1:输入:name =“alex”,typed =“aaleex”输出:true说明:'alex'中的'a'和'e'被长按。例如2:输入:name =“laiden”,typed =“laiden”输出:true说明:没有必要长按任何字符。java实现方式1: ...
2020-02-10 13:48:06
196
1
原创 LeetCode: 219.Contains Duplicate(包含重复的数)
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k....
2020-02-07 19:26:58
234
1
原创 LeetCode:728. Self Dividing Numbers(找出范围内自除数)
Aself-dividing numberis a number that is divisible by every digit it contains.For example, 128 is a self-dividing number because128 % 1 == 0,128 % 2 == 0, and128 % 8 == 0.Also, a self-dividin...
2020-01-15 09:56:12
284
1
原创 最新版本深度学习框架Mxnet和gluonts报错不配(MXNetError: vector::_M_range_insert)
首先要保证安装了python,并配置好了环境变量;我是利用windows10安装(linux环境下操作更简单)windows安装pip1) 下载安装脚本curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 2) 运行安装脚本python get-pip.py 这个就...
2019-11-28 20:05:26
1363
3
原创 numpy基础知识
首先要导入numpy的包score = np.array([[80, 89, 86, 67, 79],[78, 97, 89, 67, 81],[90, 94, 78, 67, 74],[91, 91, 90, 67, 69],[76, 87, 75, 67, 86],[70, 79, 84, 67, 84],[94, 92, 93, 67, 64],[86, 85, 83, 6...
2019-10-24 17:18:16
415
原创 LeetCode:88. Merge Sorted Array(按照要求合并数组)
Given two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array.Note:The number of elements initialized innums1andnums2aremandnrespectively.You may assume that...
2019-10-24 14:34:22
147
原创 Openpose安装以及运行
一,代码完整性问题首先我写这个代码:double cellLength=projectService.getMapData(playback.getProjectId()).getCellLength();double cellWidth=projectService.getMapData(playback.getProjectId()).getCellWidth();问题:...
2019-07-19 14:28:32
711
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人