自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进阶的菜菜

尽管路途坎坷,也要披荆前行

  • 博客(242)
  • 资源 (1)
  • 收藏
  • 关注

原创 库存的inception_v3代码对应图

2021-01-23 15:46:41 1

原创 如何做特征工程?

2021-01-22 16:44:27 13

原创 哈希冲突、哈希函数、解决

哈希表核心思想就是python的字典,需要存储的对象就是字典的value,对象的关键字就是字典的键,通过哈希函数把字典的键映射到一个内存地址上,然后内存地址里存储的就是对象。—哈希函数构建的是地址。哈希表(散列表),是除顺序表、链表、索引表存储结构之外的一种存储线性表的 存储结构。基本思想就是对于n个对象,设置一个长度为m的连续内存单元,以每个对象的关键字ki作为自变量,通过一个哈希函数h(ki),把ki映射为内存单元的地址,并且把对象存储在这个内存单元中。哈希冲突值得就是不同的ki但是通过哈希函数得.

2021-01-22 11:25:06 11

原创 面试高频--TOPK问题

Topk问题可以采用有序数组,无序数组,堆堆实现优先队列。常规做法是构建一个最小堆,然后依次弹出堆顶元素,再重新维护堆的性质,直到堆中只剩下K个节点,就是我们需要的TOPk元素了。此时维护的堆是n,时间复杂度是O(N),空间复杂度也是O(N), 并且会破坏堆的数据。另外一种做法是维护一个k的堆,那么时间复杂度就是O(Nlogk)。维护一个k个节点的堆,然后把剩下的(n-k)个数依次插入堆中,最后得到一个k个节点的堆–就是我们需要的。首先,使用最小堆,每次插入与堆顶比较,大于堆顶就对堆顶进行替换,然后

2021-01-21 14:06:03 14

原创 Python中的**kwargs和**

**kwargsdef fun(a, **kwargs): print("a is", a) print("We expect kwargs 'b' and 'c' in this function") print("b is", kwargs['b']) print("c is", kwargs['c'])fun(1, b=3, c=5)加上了**kwargs则可以接收其他任意数量的变量**d={'c':3}fun(1,2,**d) d={'a':7,

2021-01-20 18:12:50 9

原创 面试回顾-二叉树回顾总结

124. 二叉树中的最大路径和路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):#

2021-01-19 21:58:33 26

原创 生成式模型和判别式模型、HMM

根据训练数据得到分类函数和分界面,比如说根据SVM模型得到一个分界面,然后直接计算条件概率判别式模型计算的是P(y|x)的最大概率作为分类–判别式模型是对条件概率建模,学习不同类别之间的最优边界,无法反映训练数据本身的特性,能力有限,其只能告诉我们分类的类别。生成式模型计算的是P(x,y)作为联合概率作为分类。因为P(x,y) = P(x|y) * P(y) :比如说类别标签有{猫,狗,猪},那首先根据猫的特征学习出一个猫的模型,再根据狗的特征学习出狗的模型,之后分别计算新样本 跟三个类别的联合..

2021-01-17 16:59:30 27 1

原创 类的继承

一个类(子类)继承另一个类(父类),自动获得另一个类的所有属性和方法,同时可以继续定义自己的属性和方法。class Car(): def __init__(self): self.car_class = ["Tesla","..."] def XX(self): return Trueclass Electric_Car(Car): def __init__(self, make): super().__init__(make) self.make = make def XX

2021-01-16 22:32:16 13

原创 删除字典的键值对,删除列表某个值,清空列表信息的方法

删除字典的键值对清空list清空list的四种方法,以及 list=[ ] 和 list.clear() 在使用中的区别。查看地址是否改变了可以通过id()来确认。使用clear()方法lists = [1, 2, 1, 1, 5]lists.clear()—地址没变print(lists)重新初始化列表:初始化该范围内的列表,初始化列表没有值,即大小为0的列表lists = [1, 2, 1, 1, 5]lists = []print(lists)—重新初始化,地址变了[]使用

2021-01-16 20:03:47 26

原创 朴素贝叶斯

在已知X的各属性的情况下求所属的类别Y–假设有Y1、Y2两类,那么就求分别在Y1的情况下,属性是X的选择属性的概率,同理,然后比较Y1和Y2下,概率的大小。选择概率大的。—各个属性 P(a1,a2,a3|Y) = P(a1|Y) * P(a2|Y) * P(a3|Y)假设各个特征属性是条件独立的。朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。关键就是如何计算第3步中的各个条件概率:1、找到一个已知分类的待分类项集合

2021-01-16 19:39:59 34

原创 高斯混合模型GMM

单维高斯分布:多维高斯分布:高斯混合模型:对于单高斯模型,求解对应的均值方差可以直接使用极大似然估计,对于混合高斯,由于各个子模型的权重,均值方差都不知道,使用极大似然后求导无法计算。所以使用迭代–EM算法:这里的隐变量是各个样本来自哪个分模型 == 计算男女各自的分布函数,但是不知道样本来自男或女,如果知道直接分开样本求即可。这里就是我们的隐变量。...

2021-01-15 14:55:55 12

原创 EM算法和极大似然

参考–写的很好极大似然估计极大似然估计你可以把它看作是一个反推。多数情况下我们是根据已知条件来推算结果,而极大似然估计是已经知道了结果,然后寻求使该结果出现的可能性极大的条件,以此作为估计值。假如一个学校的学生男女比例为 9:1 (条件),那么你可以推出,你在这个学校里更大可能性遇到的是男生 (结果);假如你不知道那女比例,你走在路上,碰到100个人,发现男生就有90个 (结果),这时候你可以推断这个学校的男女比例更有可能为 9:1 (条件),这就是极大似然估计。理论:已知某个随机样本满足某种概率

2021-01-15 11:14:33 23

原创 K均值聚类

K均值聚类的基本思想就是通过迭代找到K个簇的一种划分方案,使得聚类结果对应的代价函数最小,特别地,代价函数定义为各个样本距离所属的簇中心点的误差平方和。这里的代价函数是各个点离所属类别 的中心点的距离。缺点:容易受到初始值和离群点的影响—所以需要预处理。K均值算法的调优:1、数据归一化,离群点处理–因此需要预处理为什么需要归一化:如果不进行归一化,那么均值和方差大的维度将对数据的聚类结果产生决定性的影响。没有统一单位和归一化处理的数据无法进行聚类。2、合理选择K值,尝试不同的K值,然后画出曲线,

2021-01-14 22:23:43 22

原创 Bytedance面试高频题

剑指 Offer 55 - I. 二叉树的深度输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。class Solution(object): def maxDepth(self, root): """ :type root: TreeNode

2021-01-14 21:34:07 33 1

原创 动态规划-打家劫舍专题

198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入

2021-01-12 21:46:39 21

原创 降维:主成分分析PCA以及Fisher线性判别(LDA)要点

PCA的作用就是在降维,PCA降维的目的:对原始数据进行特征提取,对于处于高维特征的向量,**内部存在很多冗余噪声**,通过**降维来获取数据内部的特性**,从而**提升特征表达能力**,**降低训练复杂度**。因为信号的方差越大越好,说明蕴含了越多的信息。我们想降维,如果是三维转二维,那么就是要用二维中的一根轴去表示三维的信息,使得所有的样本点在轴上的投影方差越大越好。目的----最大化投影方差,使得数据在主轴上的投影的方差最大。步骤:1、首先去中心化–中心化的意义是后面投影之后的均值是0,方便

2021-01-12 15:28:43 12

原创 ROC曲线总结

作用:评价分类的指标,经常作为二值分类器的重要指标之一。横坐标假阳性率:FPR = FP/N,纵坐标真阳性率:TPR=TP/P。都是对正样本进行的,FP指的是N个负样本中被预测为正样本的数目;TP是P个正样本中被预测为正样本的数目。所以其实,预测为正样本的数目等于 TP + FPTP(True Positive) FP(False Positive)ROC曲线的绘制就是通过不断移动分类器的"截断点"来生产曲线上的一组关键点。从最高得分开始,逐渐调整得到最低得分,每一个截断点对应一个TPR和FP

2021-01-11 20:22:40 27

原创 卷积公式记录

2021-01-11 15:26:46 23

原创 最长回文子串

5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”可以使用从中心往两边的找法,以每一个点为中心,依次往两边扩展;也可以使用动态规划。1、中心往两边重点是注意考虑中心是1一个数还是两个数!!class Solution(object

2021-01-11 10:32:29 12

原创 动态规划回顾

任何思想方法都有一定的局限性,超出了特定条件,它就失去了作用。同样,动态规划也并不是万能的。适用动态规划的问题必须满足最优化原理和无后效性。1.最优化原理(最优子结构性质) 最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。2.无后效性将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它**以前各阶段的状态无法直接影响它

2021-01-10 23:17:12 11

原创 lru_cache缓存装饰器

import functools@functools.lru_cache(None)可以用于自顶向下的一些递归的情况。

2021-01-10 10:21:01 15

原创 leetcode股票买卖问题

121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票

2021-01-09 16:02:23 24

原创 leetcode背包问题的进一步总结

leetcode常见的背包问题有**1、组合问题。2、True、False问题。3、最大最小问题。**分为三类。1、组合问题:377. 组合总和 Ⅳ494. 目标和518. 零钱兑换 II2、True、False问题:139. 单词拆分416. 分割等和子集3、最大最小问题:474. 一和零322. 零钱兑换组合问题公式dp[i] += dp[i-num]True、False问题公式dp[i] = dp[i] or dp[i-num]最大最小问题公式dp[i] = mi

2021-01-08 16:11:27 40 2

原创 决策树及代码实现

“信息熵”(information entropy)是度量样本集合纯度的一种常用指标。商越小代表纯度越高。商越大越混乱。熵的计算公式:其中为集合中第K类属性所占样本的比例。Ent(D)的值越小,则D的纯度越高信息增益开始的ID3算法就是根据信息增益来进行分类的。通过不断得到信息增益最大的特征作为分类的依据,不断划分。代码的实现与公式一致,不断拿信息增益最大的特征进行分类,直到分类结束–特征使用完毕。代码实现:# -*- coding: utf-8 -*-"""Created on Th

2021-01-08 09:29:02 21

原创 完全背包问题

322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1class Solution: def coinChange(self, co

2021-01-07 11:47:40 20

原创 逻辑回归(logistic regression)面试总结

这篇博文写的太好了–

2021-01-06 21:48:10 26

原创 动态规划-子序列问题解题笔记

找状态转移方程的方法是,思考每个状态有哪些「选择」,只要我们能用正确的逻辑做出正确的选择,算法就能够正确运行。动态规划之子序列问题解题模板–两种思路参考https://mp.weixin.qq.com/s/zNai1pzXHeB2tQE6AdOXTA1、一个一维的DP数组int n = array.length;int[] dp = new int[n];for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) {

2020-12-31 09:57:37 62

原创 目标检测指标AP笔记

mAP: mean Average Precision, 是多标签图像分类任务中的评价指标。AP衡量的是学出来的模型在给定类别上的好坏,而mAP衡量的是学出的模型在所有类别上的好坏。参考添加链接描述,写的很好一 首先关注 TP\FP\FN\TNTP、FP、FN、TNTrue Positive (TP):----正确地判定为正类False Positive (FP): IoU<=阈值 的检测框数量,或者是检测到同一个 GT 的多余检测框的数量 -------错误地判定为正类False N

2020-12-26 16:56:08 49

原创 广度优先和深度优先的时间复杂度以及空间复杂度(更新)

DFS和BFS时间复杂度:O(n)因为这是树 遍历,我们必须触摸每个节点,使这个O(n),其中n是树中的节点数。BFS空间复杂度:O(n)BFS必须至少存储队列中整个树的级别(样本 队列实施)。使用完美的完全平衡二叉树,这将是(n / 2 + 1)个节点(最后一个级别)。 最佳案例 (在此上下文中),树严重不平衡,每层只包含1个元素,空间复杂度为O(1)。 最坏的情况下 将存储(n-1)个节点与一个相当无用的N-ary树,其中除根节点之外的所有节点都位于第二级。DFS空间复杂度:O(d)无论实现(

2020-12-26 14:11:33 166

原创 列表建立的坑

下面两种建立列表得到的是不同的。原因是指针。----第一种其实就是浅拷贝,record = [[-1]*n]*mrecord = []for i in range(m): record.append([-1]*n)m = 3, n = 3虽然建立之后都是得到,[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]]但是,第一种,当整行发生变化,那么一整个都会改变。record = [[-1]*n]*mfor j in range(n): r

2020-12-26 10:06:34 15

原创 0-1背包问题

参考labuladong一个典型的动态规划问题。这个题目中的物品不可以分割,要么装进包里,要么不装,不能说切成两块装一半。这也许就是 0-1 背包这个名词的来历。标准套路1、明确状态和选择状态:背包的容量 和 可选择的物品选择就是 装 / 不装 背包for 状态1 in 状态1的所有取值: for 状态2 in 状态2的所有取值: for ... dp[状态1][状态2][...] = 择优(选择1,选择2...)2、定义状态数组状

2020-12-24 14:50:18 66

原创 反卷积

下图含义:绿色是卷积之后得到的图像,蓝色是原始图像,卷积核大小是3*3。

2020-12-23 15:46:28 18

原创 faceshifter第一阶段换脸效果

2020-12-22 09:18:54 30

原创 torch tensor--待补充

没去掉一个外括号就是一个维度

2020-12-15 12:09:58 8

原创 回溯总结笔记--参考labuladong

参考:https://labuladong.gitbook.io/algo/di-ling-zhang-bi-du-xi-lie/hui-su-suan-fa-xiang-jie-xiu-ding-ban解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树底层,无法再做选择的条件。回溯算法框架result = []def backtrack(路径, 选择列表):

2020-12-12 23:09:33 80 2

原创 列表浅拷贝

浅拷贝list.copy() 浅拷贝:复制此列表(只复制一层,不会复制深层对象) 等同于 L[:]浅拷贝只是复制了列表的一层元素,但是对于深层的列表元组字典等等,只是把地址绑定到了当前下标而不是递归复制深层对象,所以深层对象一旦改变,浅拷贝也会改变。深拷贝深拷贝和浅拷贝的区别:a = copy.deepcopy(b)先导入copy模块递归复制到深层的模块。...

2020-12-11 19:37:36 26

原创 tuple的运算与妙用

a = (5,)a += (6,)print(a)注意逗号是必须的,才可以添加。可以先用普通的

2020-12-11 14:46:26 14

原创 机器学习面经---SVM

svm与与感知器的联系和优缺点比较感知机学习算法会因采用的初值不同而得到不同的超平面。而SVM试图寻找一个最佳的超平面来划分数据。感知机简单求解快速,但是无法解决非线性分类问题,svm可以通过引入核技巧来实现非线性分类但是计算复杂度相对于感知机要高。理解SVM目标函数的由来;理解SVM中核技巧的使用;将目标函数转化成对偶问题的推导(软间隔、硬间隔);为什么要转换成对偶问题求解,求解的权重个数(一系列相关的细节问题);多个角度解释逻辑回归与SVM之间的关系目标函数:最小化函数间隔将目标函数转化为对偶函

2020-12-07 12:09:59 17

转载 机器学习-感知机

注意,感知机不能表示异或。—其实不光感知机无法处理异或问题,所有的线性分类模型都无法处理异或分类问题。无法找到一条直线将两类结果分开。即感知机无法找到一个线性模型对异或问题进行划分。其实不光感知机无法处理异或问题,所有的线性分类模型都无法处理异或分类问题。...

2020-12-07 10:56:51 15

原创 2020-12-02

题目描述给定牛牛一个后缀表达式s,计算它的结果,例如,1+1对应的后缀表达式为1#1#+,‘#’作为操作数的结束符号。其中,表达式中只含有‘+’、’-‘、’*‘三种运算,不包含除法。本题保证表达式一定合法,且计算过程和计算结果的绝对值一定不会超过10^{18}10 18使用栈来解决上述问题。遇到+ - * 就出栈。class Solution: def solve(self , str ): stack = [] last = 0 if n

2020-12-02 22:53:13 7

国科大知识产权期末重点总结提要.zip

开卷考试,带其总结,稳稳90+。 开卷考试,带其总结,稳稳90+。

2019-12-15

空空如也

空空如也

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

TA关注的人 TA的粉丝

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