- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 matplotlib绘制各种图形
知识点归纳1. 线图:plot()2. 散点图:scatter()3. 条形图:bar()4. 箱型图:barplot()5. 饼图:pie()6. 直方图和密度图:hist()7. 多图合并显示:subplot()和subplots()8. 图表动态刷新:ion()和ioff()线图:plot()函数功能:展现变量的变化趋势调用方法:plt.plot(x, y, linestyle, linewidth,color,marker, markersize, markeredgecolo
2021-04-11 20:30:44
2410
原创 模型集成
模型集成在上一章我们学习了如何构建验证集,如何训练和验证。本章作为本次赛题学习的最后一章,将会讲解如何使用集成学习提高预测精度。6 模型集成本章讲解的知识点包括:集成学习方法、深度学习中的集成学习和结果后处理思路。6.1 学习目标学习集成学习方法以及交叉验证情况下的模型集成学会使用深度学习模型的集成学习6.2 集成学习方法在机器学习中的集成学习可以在一定程度上提高预测精度,常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法与具体验证集划分联系紧密
2021-03-07 22:16:59
284
原创 模型训练与验证
模型训练与验证一个成熟合格的深度学习训练流程至少具备以下功能:在训练集上进行训练,并在验证集上进行验证;模型可以保存最优的权重,并读取权重;记录下训练集和验证集的精度,便于调参。5 模型训练与验证为此本章将从构建验证集、模型训练和验证、模型保存与加载和模型调参几个部分讲解,在部分小节中将会结合Pytorch代码进行讲解。5.1 学习目标理解验证集的作用,并使用训练集和验证集完成训练学会使用Pytorch环境下的模型读取和加载,并了解调参流程5.2 构造验证集在机器学习模型(特别
2021-03-04 19:44:41
1145
1
原创 评价函数与损失函数
评价函数与损失函数本章主要介绍语义分割的评价函数和各类损失函数。4 评价函数与损失函数4.1 学习目标掌握常见的评价函数和损失函数Dice、IoU、BCE、Focal Loss、Lovász-Softmax;掌握评价/损失函数的实践;4.2 TP TN FP FN在讲解语义分割中常用的评价函数和损失函数之前,先补充一**TP(真正例 true positive) TN(真反例 true negative) FP(假正例 false positive) FN(假反例 false negati
2021-03-01 21:03:45
1271
原创 语义分割模型发展
语义分割模型发展本章主要讲解的是语义分割网络模型的发展:FCN 、SegNet、Unet、DeepLab、RefineNet、PSPNet、GAN语义分割。3 语义分割模型发展语义分割(全像素语义分割)作为经典的计算机视觉任务(图像分类,物体识别检测,语义分割)。其结合了图像分类、目标检测和图像分割,通过一定的方法将图像分割成具有一定语义含义的区域块,并识别出每个区域块的语义类别,实现从底层到高层的语义推理过程,最终得到一幅具有逐像素语义标注的分割图像。3.1 学习目标掌握语义分割模型的原理和训
2021-02-26 22:36:16
2099
1
原创 OpenCV和Pytorch实现数据扩增
本章对语义分割任务中常见的数据扩增方法进行介绍,并使用OpenCV和albumentations两个库完成具体的数据扩增操作。2 数据扩增方法本章主要内容为数据扩增方法、OpenCV数据扩增、albumentations数据扩增和Pytorch读取赛题数据四个部分组成。2.1 学习目标理解基础的数据扩增方法学习OpenCV和albumentations完成数据扩增Pytorch完成赛题读取2.2 常见的数据扩增方法图像的增广是通过对训练图像进行一系列变换,产生相似但不同于主体图像的训练样
2021-02-23 21:18:58
1124
原创 异常检测--高维数据异常检测
#异常检测——高维数据异常检测主要内容包括:Feature Bagging孤立森林文章目录1、引言2、Feature Bagging3、Isolation Forests4、总结5、练习6、参考文献1、引言在实际场景中,很多数据集都是多维度的。随着维度的增加,数据空间的大小(体积)会以指数级别增长,使数据变得稀疏,这便是维度诅咒的难题。维度诅咒不止给异常检测带来了挑战,对距离的计算,聚类都带来了难题。例如基于邻近度的方法是在所有维度使用距离函数来定义局部性,但是,在高维空间中,所有点对的
2021-01-24 18:05:15
745
原创 异常检测--基于相似度的方法
#异常检测——基于相似度的方法主要内容包括:基于距离的度量基于密度的度量文章目录1、概述2、基于距离的度量2.1 基于单元的方法2.2 基于索引的方法3、基于密度的度量3.1 k-距离(k-distance(p)):3.2 k-邻域(k-distance neighborhood):3.3 可达距离(reachability distance):3.4 局部可达密度(local reachability density):3.5 局部异常因子:4、练习参考资料:1、概述 “异常”通常是一个
2021-01-21 22:00:32
662
原创 异常检测--线性相关方法
#异常检测——线性相关方法@(Aaron) [异常检测, 线性方法]主要内容包括:线性回归主成分分析文章目录1、引言2、数据可视化3、线性回归3.1 基于自变量与因变量的线性回归3.1.1 最小二乘法3.1.2 梯度下降法3.2 基于异常检测的线性回归4、主成分分析4.1 原理推导4.2 归一化问题5、回归分析的局限性6、总结7、资料8、练习参考文献1、引言 真实数据集中不同维度的数据通常具有高度的相关性,这是因为不同的属性往往是由相同的基础过程以密切相关的方式产生的。在古典统计学中
2021-01-18 21:05:54
525
原创 异常检测---基于统计学的方法
异常检测——基于统计学的方法主要内容包括:高斯分布箱线图文章目录异常检测——基于统计学的方法1、概述2、参数方法3、非参数方法4、HBOS5、总结6、练习7、代码实战参考资料1、概述统计学方法对数据的正常性做出假定。**它们假定正常的数据对象由一个统计模型产生,而不遵守该模型的数据是异常点。**统计学方法的有效性高度依赖于对给定数据所做的统计模型假定是否成立。异常检测的统计学方法的一般思想是:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。即利用统计
2021-01-15 22:05:03
1631
原创 异常检测类别以及解决办法
1、什么是异常检测异常检测(Outlier Detection),顾名思义,是识别与正常数据不同的数据,与预期行为差异大的数据。识别如信用卡欺诈,工业生产异常,网络流里的异常(网络侵入)等问题,针对的是少数的事件。1.1 异常的类别点异常:指的是少数个体实例是异常的,大多数个体实例是正常的,例如正常人与病人的健康指标;上下文异常:又称上下文异常,指的是在特定情境下个体实例是异常的,在其他情境下都是正常的,例如在特定时间下的温度突然上升或下降,在特定场景中的快速信用卡交易;群体异常:指的是在群体集
2021-01-12 20:39:40
3190
原创 查找---结合力扣几道经典例题讲解
文章目录一.查找表考虑的基本数据结构算法应用LeetCode 349 Intersection Of Two Arrays 1题目描述分析实现LeetCode 350 Intersection Of Two Arrays 2题目描述分析实现LeetCode 242 Intersection Of Two Arrays 2题目描述分析实现LeetCode 202 Happy number题目描述分析实现tipsLeetCode 290 Word Pattern题目描述分析实现tipsLeetCode 205
2020-08-25 23:48:55
323
原创 动态规划的应用--结合几道经典例题
动态规划动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。主要思想若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会重复计算很多相同的子问题,利用动态规划的思想可以减少计算量。动态规划法仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量,一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。动态规划
2020-08-23 20:31:00
538
原创 分治算法的应用:结合力扣几道经典例题
一、什么是分治算法分治算法的主要思想是将原问题递归地分成若干个子问题,直到子问题满足边界条件,停止递归。将子问题逐个击破(一般是同种方法),将已经解决的子问题合并,最后,算法会层层合并得到原问题的答案分治算法的主要步骤分:递归地将问题分解为各个的子问题(性质相同的、相互独立的子问题);治:将这些规模更小的子问题逐个击破;合:将已解决的子问题逐层合并,最终得出原问题的解;分治法适用的情况原问题的计算复杂度随着问题的规模的增加而增加。原问题能够被分解成更小的子问题。子问题的结构和性质与
2020-08-18 10:16:12
1639
原创 剑指offer刷题记录66--二叉树的最近公共祖先II
注意和上一题区别开来,上一题二叉搜索树的最近公共祖先。这一题我们用递归的思想来解答。来自力扣大佬的解析
2020-06-08 21:20:55
139
原创 剑指offer刷题记录64--构建乘积数组
题目解析刚开始没有看懂这道题目,后来仔细一琢磨,终于是明白了。我们先来看一下这个题目。会发现,B[i] 公式中没有A[i] 项,也就是说如果可以使用除法的话,就可以用公式B[i]=A[0]A[1]…*A[n-1]/A[i]来计算B[i],但是题目要求不能使用,因此我们只能另想办法。现在要求不能使用除法,只能用其他方法。一个直观的解法是用连乘n-1个数字得到B[i]。显然这个方法需要O(n*n)的时间复杂度。好在还有更高效的算法。可以把B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-.
2020-06-08 09:30:42
166
原创 剑指offer刷题记录63--求1+2+3+......+n
解题思路:题目本身不难,有很多种解法,但是当被限制这些条件后,就不得不慎重解题了。最秀的代码来自力扣大佬的解答
2020-06-07 14:31:52
156
原创 剑指offer刷题记录62--股票最大利润
解题思路:暴力法(做了那么多题目,第一想到的还是暴力解法。。。)解题思路2 动态规划来自力扣大佬的解析代码优化
2020-06-07 11:20:44
129
原创 剑指offer刷题记录61--圆圈中最后剩下的数字
来自力扣大佬的解析解题思路阅读提示(全文最重要的点):只关心最终活着那个人的序号变化1 约瑟夫问题这个问题实际上是约瑟夫问题,这个问题描述是:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。2 问题转换...
2020-06-06 22:30:46
193
原创 剑指offer刷题记录59--n个骰子的点数(动态规划)
解法1 暴力解法我们可以这样考虑,找出所有骰子和的可能值得概率值。(1)当 n=1 的时候,概率都是 1/6。(2)当 n=2 的时候,s=2的概率值为1/36,s=3的概率值为1/18,s=4的概率值为1/12…s=12的时候…(注意这里的和是从2开始)(3)当 n=3 的时候,s=3的概率值为1/216,s=4的概率值为 1/72……后面的就不计算了,也就是说,n=3时, 将第三个骰子(六个1/6)添加到第二个骰子的结果(n=2的结果在上个循环已经求得)上去。n=4时, 将第四个骰子(六个1.
2020-06-05 22:08:01
162
原创 剑指offer刷题记录52--和位S的两个数字
解法1 字典法(哈希)用字典存储已经遍历的数字,如果target-i在字典中,则直接返回[i, target-i], i 为当前遍历到的数字。时间复杂度O(N),空间复杂度O(N)解法二 双指针代码如下时间复杂度:O(N) N为数组nums 的长度,双指针共同遍历整个数组。空间复杂度O(1):变量i,j使用常数大小的额外空间。...
2020-06-03 20:48:25
151
原创 剑指offer刷题记录51--数组中数字出现的次数
官方题解在这里解释一下因为异或运算规则为:两数相同的结果为0,不同的结果为1。所以异或整个数组,由于数组中所有相同的数值在异或运算中都变为0,导致结果只剩下两个不同的数值的异或:例如:nums=[4,1,4,6],转换成二进制为0100,0001,0100,0110,那么对这四个数字进行异或,得到的结果为0001^0110,其实也就是数组中这两个不同数字异或的结果。那么从上面可以知道,我们之后的操作只需要将这两个数字分出来就好。怎么分呢?还是以 nums = [4,1,4,6] 为例,nums.
2020-06-03 10:05:56
160
原创 剑指offer刷题记录50--平衡二叉树
来自力扣大佬的解析方法1和方法2的区别:方法二最差情况下,需要从每个节点开始 计算树的深度,因此会产生许多重复遍历。例如计算根节点深度,和计算根节点的左子节点的深度时,两者都需要遍历根节点的左子节点,以此类推。而方法一只需要一次遍历,从最底向上回溯信息,没有重复遍历。...
2020-06-02 08:51:13
141
原创 剑指offer刷题记录49--二叉树的深度I
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。解题思路1 DFS递归实现关于空间复杂度O(N)的理解:在递归的时候,系统也是需要使用栈空间。例如本题,每开启一个递归函数,都需要保存root(还需要保存其他的,有兴趣可以查看力扣探索里的递归复杂度分析),因此如果二叉树退化成链表,递归就会累计N的深度,临时保存N个root和“其他东西”,因此复杂度是O(N)。解题思路2 层序遍历参考链接...
2020-06-01 09:54:40
142
原创 剑指offer刷题记录48--二叉搜索树的第K大节点
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。来自力扣大佬的解析
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。解题思路1:暴力解法遍历整个列表,若等于目标值,则计数加1解题思路2:二分查找使用二分查找的算法,查找多个连续的target的第一个和最后一个的索引,相减即可得到相应的target数量。来自力扣大佬的解析代码如下...
2020-05-31 17:50:32
118
原创 剑指offer刷题记录46--两个链表的第一个公共节点(程序员的爱情)
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。思路解析假设两个链表的长度分别是L1+C,L2+C,C为公共部分的长度。那么当第一个人走了L1+C步后,回到第二个人的起点走L2步;与此同时,第二个人走了L2+C步后,回到第一个人的起点走L1步。当两个人走的步数都为L1+L2+C时这两个人就相遇了。代码如下复杂度分析时间复杂度:O(M+N)空间复杂度:O(1)参考链接 强烈建议看原文的解析。
2020-05-30 09:46:34
193
原创 剑指offer刷题记录44--第一个只出现一次的字符
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。来自力扣大佬的解析
2020-05-29 09:01:52
135
原创 剑指offer刷题记录43--丑数
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。力扣大佬的解析
2020-05-28 19:47:09
124
原创 剑指offer刷题记录42--最长不含重复字符的子字符串
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。
2020-05-28 09:11:08
152
原创 剑指offer刷题记录41--礼物的最大价值
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。来自力扣大佬的解析代码如下复杂度分析
2020-05-27 09:16:07
144
原创 剑指offer刷题记录40--把数字翻译成字符串
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。解题思路来自力扣大佬的解析代码如下
2020-05-26 09:38:16
119
原创 剑指offer刷题记录39--把数组排成最小的数(存有问题)
该系列博客内容主要是《剑指Offer》中的经典题目,结合在刷题过程中见到的一些精彩的解题过程,从而在这里记录下来。代码以Python3实现。解法一:排序法(暴力求解)
2020-05-25 20:13:01
141
天气预测数据,包含时间,温度,湿度等
2024-04-09
遥感数据集,分别为grass、path、road、roof和tree
2023-03-21
收集各国足球运动员的相关信息,其中包括国籍、年龄、所在俱乐部、擅长左(右)脚等特征,可以用于足球数据运动员分析等项目
2023-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人