自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python DataFrame随机抽样

【代码】Python DataFrame随机抽样。

2023-09-01 14:26:19 366

原创 Python工作提升效率

【代码】Python工作提升效率。

2023-08-30 10:42:49 185

原创 打不开github

https://blog.csdn.net/qq_41176055/article/details/128496628

2023-08-23 15:58:50 126

原创 SQL面试真题--最大连续登录天数

sql:用户最大连续登录天数

2022-08-14 22:46:12 373 1

原创 ACM类编程题笔试

一、行读取的格式# 1、一个input()读取一行# 2、把一行中的数字转化成列表list_1 = list(map(int,input().split())) # 分割-转化成int-list# orlist_1 = [int(i) for i in input().split()]# 3、数字转化成列表 123->[1,2,3]# 无空格的input()输出是数字123,需要转化成列表中的数字:list(map(int,input())# 有空格的input()转化为数值列表l

2022-07-07 13:11:43 599

原创 mysql正则表达式搜索

一、 like和regexp的区别1、like是完全匹配%:表示任意0个或多个字符。可匹配任意类型和长度的字符%%:有些情况下若是中文,请使用两个百分号(%%)表示。_: 表示任意单个字符。[ ]:表示括号内所列字符中的一个。[^ ] :表示不在括号所列之内的单个字符。2、regexp是部分匹配,等同于rlikeregexp操作符^ :匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。$ :匹配输入

2021-12-13 17:11:08 769

原创 指标下降分析

一、分析问题如果当前问题经过分析是需要解决的,才会接着从人货场角度分析问题所在并寻求解决措施。1、判断数据源质量确认数据本身没有错2、判断指标波动幅度(问题轻重)事先要设好预期值3、判断指标波动持续时间(问题缓急)持续性下跌≥一次性下跌≥周期性下跌(1)持续下跌的时间越长问题越严重(2)周期性问题要注意和上一期作比较,如果每一次下跌的幅度变大说明问题严重性指标下跌/上升,通常有三种形态:● 一次性变化:只在某个时间点发生波动。一次性变化背后的一般都是短期/突发事件,比如系统down掉

2021-11-28 15:44:13 14861

原创 牛客刷题——插更删

SQL1 插入记录(一)由于comment是自增主键,相当于索引,所以插入的时候会跟随表格行数进行自己增加。insert into exam_recordVALUES (null,1001,9001,'2021-09-01 22:11:12','2021-09-01 22:11:12' +INTERVAL 50 minute,90),(null,1002,9002,'2021-09-04 07:01:02',null,NULL);insert into exam_record(uid,exam

2021-11-23 22:54:14 232

原创 数据分析的思维展开

一、MECE的优点MECE,是Mutually Exclusive CollectivelyExhaustive的缩写,简单归纳成8个字:相互独立,完全穷尽;分析原因的时候很容易把各种原因交织在一起,造成思维混乱。MECE可以i帮助厘清思绪。二、MECE的步骤MECE第一步:确定目标MECE第二步:分步骤梳理问题层层拆解原因,每一层可以多分几个层次。分析的最终目的是能指导业务改善,因此分析逻辑应指向业务可以落地的地方MECE第三步:代入数据量化MECE第四步:导出业务结论ME

2021-11-23 20:12:47 774

原创 因果推断

一、因果推断的适用场景因果性是指在操作/改变X后,Y随着这种操作/改变也变化,则说明X是Y的因cause。有些场合可以很明显的区分相关和因果,举个例子,我们会发现在学校中,近视的同学成绩更好。近视和成绩好之间有强相关性,但显然近视不是成绩好的原因。而我们想要提升学生成绩,自然需要找到因,否则就会通过给学生戴眼镜的方式来提高成绩。但是有很多场合难以区分,举个例子,经常喝葡萄酒的人寿命更长,是因为葡萄酒确实能延长寿命,还是因为能经常喝的人通常更富有,享有更好的医疗条件。识别某种干预是否产生效果,**简

2021-11-22 23:38:57 1119

原创 AARRR模型

一、Acquisition 用户获取用户获取,用户拉新,首先要去考虑的其实并不是各种渠道推广引流,而应该是产品上降低用户的使用门槛,结合不同阶段用户群体的特征,制定最适合的拉新策略,同时时刻关注各个核心数据指标。(一)产品角度1. 简化注册登录流程(1)账号强相关产品,由于当前绑定手机为硬性要求,往往可以采用默认手机验证码登录的形式,将注册/登录/绑定流程融合,简化用户操作流程。同时,可以辅以各个社交账号的引入登入,如常见的微信/微博/QQ授权等。(2)对于账号非强相关的产品,则可以采用直接.

2021-11-22 21:02:00 1686

原创 牛客刷题——case when

SQL69 牛客每个人最近的登录日期(四)查询每个日期登录新用户个数,并且查询结果按照日期升序排序思路:首先可以得到每个用户最开始登录的日期,然后如果直接对这个表count会失去计数为0的日期。所以应该到原来的表里进行in的判断,是就放进计数,不是就不计数,也就是用到sum(case when 条件 then 1 else 0 end)select date,sum(case when (user_id,date) in (select user_id,min(date) from logi

2021-11-19 15:14:09 932

原创 牛客刷题——窗口函数

文章目录一、窗口函数(一)参数含义(二)功能(三)执行顺序(四)窗口函数的选择(五)实际应用1、累积求和2、计算移动平均3、用户行为分析一、窗口函数(一)参数含义<窗口函数> window_name OVER ([PARTITION BY <列清单>]ORDER BY <排序用列清单>)over:用来指定函数执行的窗口范围,若后面括号中什么都不写,则意味着窗口包含满足WHERE条件的所有行,窗口函数基于所有行进行计算;如果不为空,则支持以下4中语法来设置窗

2021-11-19 14:55:52 1477

原创 leetcode刷题——回溯例题

文章目录一、组合问题一、组合问题77. 组合:n个数中求k个数的组合问题思路:每次从集合中选取元素,可选择的范围随着选择的进行而收缩,调整可选择的范围。终止条件:每次搜索到了叶子节点,我们就找到了一个结果。for循环用来横向遍历,递归的过程是纵向遍历。backtracking(递归函数)通过不断调用自己一直往深处遍历,总会遇到叶子节点,遇到了叶子节点就要返回。参数含义:n:相当于树的宽度k:相当于树的深度。startIndex:这个参数用来记录本层递归的中,集合从哪里开始遍历(集合就是

2021-11-15 15:06:22 613

原创 leetcode刷题——回溯算法知识点

一、什么是回溯?定义:回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。效率:因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。回溯法很难,很不好理解,但是回溯法并不是什么高效的算法。适用情况:一些问题能暴力搜出来就不错了,撑死了再剪枝一下,还没有更高效的解法。适用问题类型组合问题:N个数里面按一定规则找出k个数的集合切割

2021-11-15 10:22:42 4229

原创 xgboost知识点总结+代码调参

1. xgboost与GBDT的区别:(1)xgboos相比GBDT的优点(1)精度更高:GBDT只用到一阶泰勒, 而xgboost对损失函数进行了二阶泰勒展开, 一方面为了增加精度, 另一方面也为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数。(2)灵活性更强:GBDT以CART作为基分类器,而Xgboost不仅支持CART,还支持线性分类器,另外,Xgboost支持自定义损失函数,只要损失函数有一二阶导数。(3)正则化:xgboost在目标函数中加入了正则,用于控制模型的复杂度。有助于降

2021-11-14 20:20:07 2581

原创 leetcode刷题——二叉树例题

文章目录一、层序遍历一、层序遍历107. 二叉树的层序遍历 II# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def level

2021-11-13 15:26:06 4359 2

原创 leetcode刷题——二叉树知识点

文章目录一、二叉树的种类二、二叉树的存储方式三、二叉树的遍历方式(一)二叉树的递归遍历四、二叉树的定义一、二叉树的种类满二叉树:只有度为0的结点和度为2的结点完全二叉树:除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。【优先级队列】其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系。二叉搜索树:二叉搜索树是有数值的了,二叉搜索树是一个有序树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树

2021-11-12 20:45:41 405

原创 leetcode刷题——栈与队列

20. 有效的括号 # 方法一,仅使用栈,更省空间 stack = [] for item in s: if item == '(': stack.append(')') elif item == '[': stack.append(']') elif item == '{': stack.appen

2021-11-12 19:43:26 3804

原创 leetcode刷题——字符串

文章目录一、反转二、替换三、翻转一、反转数组反转就用首尾指针,字符串是一种特殊的数组结构344. 反转字符串【反转问题】字符串也是一种数组结构,不同于链表,链表交换是从开始到最后两两交换,相当于调换一下指针的方向;但是字符串的交换则是分别从头尾出发,两两交换头尾元素。class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, m

2021-11-12 14:07:33 254

原创 leetcode刷题——循环

特点:边界变换问题解题关键:抓住循环一致性原则,遇到边界每一次的开闭原则都是统一的。54. 螺旋矩阵59. 螺旋矩阵 IIclass Solution: def generateMatrix(self, n: int) -> List[List[int]]: matrix=[[0]*n for _ in range(n)] left,right,up,down=0,n-1,0,n-1 # 可变的边界是这道题的难点,关键在于抓住循环一致性原则每一条.

2021-11-10 12:53:32 189

原创 集成学习面试题

文章目录集成学习面试题1. 什么是集成学习算法?2. 集成学习主要有哪几种框架?3. 简单介绍一下bagging,常用bagging算法有哪些?(bootstrap aggregating)4. 简单介绍一下boosting,常用boosting算法有哪些?5. boosting思想的数学表达式是什么?6. 简单介绍一下stacking。7. 你意识到你的模型受到低偏差和高方差问题的困扰,应该使用哪种算法来解决问题呢?为什么?8. 常用的基分类器是什么?9. 可否将随机森林中的基分类器,由决策树替换为线性分

2021-11-10 12:47:21 499

原创 leetcode刷题——查找

一、找一个数是否在元素集合中>>哈希表1. 两数之和题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。类型:无序查找用哈希表思路:01-记录所有数字的索引和值;02-找到num在nums中,target-num也在的情况,同时两者的索引不能相同。经验:(1)for遍历只能针对range或者

2021-11-09 20:25:40 982

原创 leetcode刷题——哈希表

认识哈希表数组本质上就是一张哈希表(也称为散列表),哈希表只不过把数组的索引显式表示出来了。所以数组和哈希表查询的时间复杂度都是O(1),一般会用来快速判断一个元素是否在集合中。其添加和删除的时间复杂度是O(n),因为删除或者添加一个元素后面的元素要补上去。与之相对应的是链表,删除和添加的时间复杂度是O(1),查询是O(n),因为最坏的情况是要一直查找到最后一个元素。哈希表的作用统计字符串中所有元素的个数根据唯一索引(分类标志),来存储对应的属于同一组的元素哈希法适用哈希法,一般会选

2021-11-09 15:58:37 409

原创 leetcode刷题——链表

206. 反转链表指针法:cur:当前用来遍历的指针pre:要赋值的指针temp:保存原cur指向的位置class Solution: def reverseList(self, head: ListNode) -> ListNode: cur=head pre=None while cur!=None: temp=cur.next # 下一个遍历的位置 cur.next=pre

2021-11-07 13:18:55 173

原创 leecode刷题——链表常见操作API

链表的常见操作:获取链表第index个节点的数值链表的最前面插入一个节点在链表的最后面插入一个节点在链表第index个节点前面插入一个节点删除链表的第index个节点# 单链表class Node: def __init__(self, val): self.val = val self.next = Noneclass MyLinkedList: def __init__(self): self._head

2021-11-06 23:33:57 93

原创 leetcode刷题——数组和链表

一、数组(一)数组的内存空间连续:数组是存放在连续内存空间上的相同类型数据的集合。数组内存空间的地址是连续的。(二)数组的删除删除需要移动之后元素的位置:正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。数组的元素是不能删的,只能覆盖。也就是用后面的元素覆盖要删除的元素。二、链表(一)链表类型单链表:一个指针域双链表:两个指针域,既可以向前查询也可以向后查询循环链表:链表首尾相连,解决约瑟夫环问题(二)链表的操作1、删

2021-11-06 17:24:05 110

原创 深度学习的步骤(以多层感知机为例)

以多层感知机为例,在明晰步骤的同时熟悉代码确定batch_size,根据batch_size加载数据batch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)初始化模型参数:各层的单元数、每层的权重和偏置矩阵、激活函数num_inputs, num_outputs, num_hiddens = 784, 10, 256W1 = nn.Parameter(torch.randn(

2021-10-28 18:33:19 360

原创 深度学习中的数值稳定性

一、问题小于1的梯度连乘越来越小,大于1的梯度连乘越来越大梯度爆炸例如选取Relu函数作为激活函数,w较大,则梯度大梯度消失例如选择sigmoid函数作为激活函数,其到数在0-0.2内,因此乘积更小。二、How to 让数据更稳定?让梯度在合理范围内模型:Resnet、LSTM归一化:梯度归一化、梯度裁剪合理的权重初始和激活函数(1)合理初始化权重的原因:因为梯度更新主要受权重w和激活函数的影响,而权重在距离最优解远的地方等高线平面崎岖,loss复杂,越靠近最优

2021-10-10 10:32:56 357

原创 深度学习中的模型选择

一、模型选择要考虑的维度(一)模型容量参数的个数参数的选择范围(二)数据复杂度样本个数样本的元素个数(RGB & 灰度)时间、空间结构多样性二、模型选择中会遇到的问题:过拟合与欠拟合,How to solve?权重衰退和dropout本质都是正则化,让隐藏层的神经元个数减少(因为部分输出为0)。实际中,权重衰退对复杂模型的效果不显著,但是dropout效果比较显著,因此更常用。两种方法可以一起用。(一)权重衰退原理:限制模型参数的选择范围以控制模型的容量。由于模型中

2021-10-10 09:59:06 1150

原创 多层感知机

多层感知机(MLP)是一种典型的神经网络一、结构h1=sigma(w1x+b1) 隐藏层1h2=sigma(w2x+b2) 隐藏层2h3=w3x+b3 输出层超参数:层数、层大小二、MLP和SVM的区别对于大数据量的问题,一般都会有神经网络解决,因为神经网络可以灵活编程;而SVM基于核,超参数设置单一,并且适用于小数据问题。...

2021-10-10 09:35:30 496

原创 dl神经网络的实质

神经网络的输入是高维数据,输出是相对低维的数据,因此神经网络的实质是压缩。压缩的方式大致有三种,推荐慢慢压缩。慢慢压缩,也可以慢慢扩一下纬度再慢慢压缩,讲究循序渐进。一般网络越深,效果越好。直接一下子扩大维度再压缩,隐藏层的神经元很多,但是网络很浅,一般效果都很不好。因为容易造成信息缺失。但是CNN也属于这种类型,他有有效的方式避免过拟合。...

2021-10-09 23:32:38 143

原创 word2vec

2021-10-09 22:42:27 32

原创 自然语言处理入门Plan

10.9-10.23Day:16daysTask 1: Introduction and Word Vectors (3天)Task 2: Word Vectors and Word Senses (3天)Task 3: Subword Models (3天)Task 4: Contextual Word Embeddings (3天)Task 5: Homework (3天)

2021-10-08 11:08:21 49

原创 python数据格式化

f.write('%s %.2f\n' % (im_path, res))输出:10_CAM2-1.jpg 2802.78

2021-09-27 18:00:24 68

原创 自定义函数中return和yield的区别

在定义的函数中,如果存在循环,并希望返回循环下的所有情况,用return只能用list来存储,很占内存;用yield不占内存,每次生成迭代结果。当然也可以用print,但是print的结果无法调用。

2021-09-26 19:08:10 47

原创 李沐实用机器学习——数据标注

一、半监督学习(一)无标签数据的假设相似特征同label同一类同label流行假设:数据的复杂度往往比呈现出的小得多,因此可以做降维处理(二)怎样处理无标签数据?1、self-trainingself-training是一种典型的半监督学习算法先训练,再预测,再融合。关键在于保证高置信度,可以用到复杂的模型。2、Active Learning+Self-training...

2021-09-24 23:23:51 570

原创 李沐实用机器学习

一、机器学习在工业应用中的挑战上线复杂模型不光需要大数据量,也需要大量的GPU支持已有数据可能只是对大多数人群效果好,对小部分群体却效果不好当用户群体发生改变,分布改变,模型需要调整模型部署上线会考虑性能,并选择模型的精华部分,做到更小更快...

2021-09-23 22:17:11 325

原创 激活函数:sigmoid、softmax、Relu

一、目标希望识别正确的概率越大越好,与其他类的差别越大越好。概率的表示用softmax函数。概率的差别的表示用交叉熵。

2021-09-22 23:29:59 3050

原创 更深入地认识逻辑回归&神经网络

逻辑回归的运算过程:01-wx+b;02-sigmoid函数逻辑回归没有分布假设逻辑回归的损失函数是cross entrypy,衡量两个分布的差异有多大。逻辑回归可用于二分类或多分类问题,区别在于激活函数。二分类问题,其激活函数是sigmoid函数(多分类问题的激活函数用softmax函数)。softmax函数:逻辑回归的缺点:只能线性分类解决只能线性分类的方法——特征提取:连续做多次逻辑回归,相当于多个NN神经网络(非线性转化),也就是连续多次wx+b后取sigm..

2021-09-22 23:21:29 222

空空如也

空空如也

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

TA关注的人

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