自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MJ_Lee的博客

keep learning

  • 博客(69)
  • 收藏
  • 关注

原创 c++中的深拷贝和浅拷贝

区别与联系:1.二者都是为了实现复制的功能;2.在不涉及指针,空间分配等资源问题时,深浅拷贝无区别;3.深拷贝重新申请了空间,改变被拷贝对象时拷贝对象不会变化;为什么需要深拷贝:- 因为浅拷贝可能会造成内存泄露拷贝发生于用被拷贝对象实例化新对象,过程中被拷贝对象的属性值会一一赋值给新对象。那么当我们的类中存在指针或者动态的内存分配时,使用普通拷贝(浅拷贝,默认拷贝)只会将那块内存的位置告知当前对象,并不会重新为新对象分配内存。当程序运行结束后,两个对象分别析构,此时这同一块内存将被释放两次。释放

2020-08-11 11:21:09 1814

原创 硬编码与软编码

硬编码:编写代码的过程中直接指定常量,后续修改需要修改代码;非CPU编码,常用GPU,DSP,FPGA, ASIC等;优点:快;软编码:编写过程中使用变量没,后续修改只需要在变量出修改即可,不需要到使用变量的位置修改;CPU编码;优点:易于维护;代码示例:int a = 2, b = 2;int c;c = 2 + a; //硬编码,2的值无法改变,后续修改需要在2处修改;c = b + a; // 非硬编码,b的值在运行时确定,变量值可变,修改只需在b的初始化位置修改即可;co

2020-08-06 19:29:50 490

原创 【剑指offer】面试题3:数组中重复的数字

问题描述:** 解题流程:**1.与面试官沟通时间和空间要求;2.构思测试用例:数组长度为1,0时的特殊处理;多个重复时如何处理;无效的测例(出现了0-n-1之外的数据);3.在脑子里面过一遍可能的解法:哈希表(时空都是O(n)),排序后检查(时间O(nlogn)+空间O(1));4.考虑题目的约束:只有0-n-1的数据;完整代码:...

2020-08-05 18:03:53 202

转载 【基础算法】4.快速幂算法

快速幂算法:leetcode题解原文链接递归代码:迭代代码:

2020-06-24 11:18:14 220

原创 【leetcode】319.灯泡开关

题目描述:解题思路:1.暴力模拟法:通过设置一个01字符串来模拟灯泡的开关,双重循环模拟过程中的开关操作,最后为计算字符串中1的个数为答案。(这个方法会超时)2.数学法:引用井水的题解思路在模拟的过程中我们发现:第1个灯泡会在第:1 轮被操作;第5个灯泡会在第:1,5 轮被操作;第9个灯泡会在第:1,3,9 轮被操作;第20个灯泡会在第:1,2,4,5,10,20轮被操作;…可总结为:第I个灯泡会在 自己的因数 时被操作,如果因数的个数是奇数则最后状态为开;题目可转化为求解有奇数个因

2020-06-04 11:54:30 137

原创 【let code】647.回文子串

问题描述:问题分析:1.回文子串分为奇数位(中心有一个对称点)和偶数位(中间无对称点);2.以中心点为起始点,向两边逐步扩散,寻求回文的最大长度(过程中相对较小的回文子串顺便计数);3.遍历数组,以每一个点当作中心点遍历计算。完整代码:class Solution { public: int getres(string s, int start, int end) ...

2020-01-15 09:27:03 112

原创 【let code】967.连续差相同的数字

问题描述:问题分析:1.可分三种情况进行讨论:N=1时,不论K为多少,结果都是0,1,2,3,4,5,6,7,8,9;K=0时,不论N为多少, 结果都是(111…)222…)(333…)…(999…);一般情况;2.相差为K的数字, 表明每一位有两种选择:前一位加K和前一位减K;(加减后判别是否在数字范围内);3.由于N>1,表明会出现多位,每一位的选择都会带来最终结果的变化,...

2020-01-07 10:47:09 227

原创 【机器学习百问】14.过拟合?欠拟合?如何处理?

问题难度(5分制):1;过拟合定义:训练集上的效果好于测试集。一般可能是训练数据过少或网络过于复杂,导致网络在训练集上的拟合结果非常好,但由于其数据少或算法简单,无法扩展到新的数据中,这种现象为过拟合。欠拟合定义:欠拟合就是不管在哪里结果都不好。算法过于简单或数据过于多都有可能引起,导致算法无法有效捕捉到完整的数据特征。在训练集和测试集上都表现的很差劲。...

2019-12-09 11:09:58 183

原创 【leet code】453.最少移动次数使数组元素相等

问题描述:问题分析:反向考虑:n-1个数+1就等于1个数-1;问题即可转化为:将数组中所有元素(每次减1)减到与最小值相等需要几步?[1,2,3]->[1,2,1]->[1,1,1]解法即可描述为:数组中其他元素与最小值的差值和。(下式中最小值*数组长度为成功后的数组和);res = sum(数组)-最小值(数组长度);完整代码: int minMoves(v...

2019-11-28 15:43:44 150

原创 【读书笔记】多层感知器反向传播过程

阅读书籍:神经网络原理(Simon Haykin著, 叶世伟,史忠植 译)图文公式来源于书籍反向传播信号流图:途中上侧为前向传播过程,下侧为反向传播过程:反向传播过程需要五个步骤:1,初始化:以一个随机分布随机的挑选出一组权值和阈值。这里随机分布应为(均值为0的均匀分布, 方差应使神经远的局部诱导域的标准差位于sigmoid函数的包和过度处)。2,训练样本的呈现:先训练一个回合(一...

2019-11-26 11:12:05 1327

原创 【基础算法】3.辗转相除法

辗转相除法(数学中专业术语称为欧几里得算法):叫辗转相除是因为,计算的过程中,除数与被除数在更新后总要交换来回除,所以叫辗转;欧几里得算法典型代表题目:最大公因数,字符串最大公因数完整代码:int gcd(int a, int b){ return b==0?a:gcd(b, a%b);}...

2019-11-25 16:52:58 2198

原创 【机器学习百问】13.超参数如何调优

问题难度(五分制):3超参数定义:在网络计算中不会变化,但对计算结果有影响的参数;比如:学习率(搜索步长),目标值(期望值),搜索范围等;调优方法:1.网格搜索法(暴力求解)在给定范围内,遍历每一个可能的取值(步长的可能取值,范围的可能取值等),寻求最优点;(由于每一个都要试一试,所以耗时巨大);改进版的网格搜索是现在一个较大范围内确定可能的位置(步长稍微大一点先到达可能点),再在可...

2019-11-25 11:47:26 161

原创 【let code】754.到达终点的最短路长

问题描述:问题分析:1.有题目第n步步长为n可联想等差数列求和;2.由于在水平面上左右走,故左右会发生对称现象如下(且同一步数可到达位置之间存在差值为2的关系):第一步可到达:1,-1第二步可到达:3,1,-1第三步可到达:6, 4, 2, 0, -2, -4, -6 第四步可到达:10, 8, 6, 4, 2, 0 …第五步可到达:15, 13, 11, 9, 7, 5, 3,...

2019-11-21 11:50:13 127

原创 【机器学习百问】12.自助验证中,当n趋于无穷大时,验证集最大能到多少?

问题难度(5分制):3自助验证定义:基于自助采样法。对于总数为n的样本集合,进行n次有放回(有重复)的随机抽样,n次抽样结束后,未被选中的样本组成一个集合作为验证集;自助验证优点:在小样本训练时,避免样本划分使得训练集和验证集过小;当n趋于无穷时,验证集多大: 样本总量的36.8%有放回抽样中,一个样本在一次抽样中未被选中的概率是:(1-1/n)n次抽样均为抽中的概率是(1-1/n)...

2019-11-19 17:40:42 459

原创 【百问机器学习】11.模型评估都有哪些验证方法,各自优缺点都是什么?

问题难度(5分制):2模型评估方法:1.Holdout检验:将原始集合按照7:3比例随机划分训练集和验证集;7份用来训练模型,3份用来检验模型;存在问题:验证集的验证结果依赖于原始分组。2.交叉检验(留一验证):为消除Holdout检验中的验证结果依赖原始分组问题而提出;将原始数据分为K(通常K=10)个大小相同的组,遍历十个组,每一以当前一组作为验证集,剩下九组作为训练集。流...

2019-11-18 11:09:21 1726

原创 【基础算法】2.回溯算法

回溯算法简介:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。代表问题:N皇后问题,全排列问题,解数独问题等;回溯体模板:void backtracking(当前标记, 【其他条件1, 其他条件2】)...

2019-11-15 17:32:42 117

原创 【机器学习百问】10.A/B测试中如何划分实验组和对照组

难度系数(5分制): 2实验组: 施以新模型的训练集合;对照组: 施以旧模型的训练集合;划分原则:分离目标群体,然后将目标群体对半分开,一半做实验组,一半做对照组;用一个例子演示划分:问题需求:利用A/B测试验证在特定群体(青年人)中新的推荐模型A的效果;划分样例:标记所有青年人,按照所有青年人ID对半划分对比效果;错误划分:全部用户对半划分(没有区分目标群体);划分目标用户中...

2019-11-15 11:43:21 3317

原创 【let code】442/448 :检测重复字符、检测缺失字符【鸽巢原理】

leetcode 442/448.检测重复字符、检测缺失字符问题描述:问题分析:鸽巢原理(组合数学知识):n个巢, n+1只鸽子,每个鸽子进一个巢,那种总会剩下一个鸽子无家可归;在此问题中我们假设数字的下标为鸽巢,下标对应的值为鸽子编号。经过一次遍历让鸽子(回到鸽子编号-1的巢里)回家,最终发现无家可归的鸽子,和没有鸽子的巢。更详细的讲解请查看:鸽巢思想解决完整代码: for...

2019-11-14 16:54:30 453

原创 【基础算法】1.二分查找

二分查找介绍:在一个有序数组中寻找目标元素,每次排除一半数据后更新左右查找边界;比如在1,2,3,4,5,6,7,8,9,10中查找8,步骤如下:1.左边界1,右边界10: 算中心结点(1+10)/2 = 5,比较5与8, 相等输出,不相等继续:2.因为5小于8, 所以将左边界1更新为中心结点+1(5+1 = 6),右边界不变:算中心结点(6+10/2=8,比较8与8,相等输出,不相等继续...

2019-11-14 15:44:52 203

原创 【let code】661.图片平滑器

问题描述:问题分析:1.如果没有越界,则计数,并加入总数;2.不能在原数组进行修改;(如果在原图进行修改,当前平滑的值会影响到后面的平滑结果);完整代码:bool inrunge(int r, int c, int R, int C) { if (r < 0 || c < 0 || r >= R || c >= C) ...

2019-11-14 15:29:29 255

原创 【let code】492.构造矩形

问题描述:问题分析:1.暴力列举:根据所给面积数据,列举所有可能的因子组合,然后筛选;2.数学分析:穿过问题表面分析可知本题旨在求一个数差值最小的两个因数;完整代码:1.暴力穷举+优化:vector<int> res; int min = area; int L = 0, W = 0; for (int w = 1; w &...

2019-11-14 15:05:16 114

原创 【let code】876.链表的中间节点(链表遍历中的奇技淫巧)

题目表述:问题分析:暴力首先计算链表的长度,然后计算中间位置的下标,再重新开始遍历链表到指定下标返回。借助容器借助容器可按下标返回的特点,将链表用容器存储,后直接按下标访问。快慢指针设置快,慢两个指针,快指针每次步长为两个结点,慢指针每次一个结点,当快指针到最后一个结点时慢指针刚好到链表中间。完整代码://暴力解法 ListNode* middleNode(ListNod...

2019-10-08 11:23:36 191

原创 【let code】118.杨辉三角(利用组合数构建杨辉三角)

问题描述:问题分析:完整代码: int calculate(int N, int k) { int res = 1; for (int i = 1; i <= k; i++) res = res * (N - k + i) / i; return res...

2019-09-25 16:37:03 164 2

原创 【let code】976.三角形的最大周长

问题描述:问题分析:1.求三角形周长(需三个数值满足三角形三边大小关系);2.求最大周长3.综上,可以将所给数组降序(保证当前周长最大)排列后,判断当前三个数值关系(是否满足三角形);完整代码:在这里插入代码片...

2019-09-25 10:35:56 171

原创 【let code】807.保持城市天际线

问题描述:问题分析:1.题目首先需要算出天际线(不同行列中的最大值);2.为每个点增高,求最多总共能增高多少,而不改变天际线(不破坏该点所在行列的最大值);3.在每个点处判断,此行此列的最大值中的较小的那个(如果不考虑这一点,使用行,则列的最大值被破坏,使用列,行的最大值会被破坏);4.个人感觉这道题应该归于easy,唯一的难点在于读题;完整代码:class Solution {...

2019-08-26 16:35:43 213 1

原创 【let code】237.删除链表中的节点。

题目描述:删除链表中给定的节点;此链表所有元素唯一;给定节点为非末尾节点;问题分析:评论区很多人戏称这道题是脑筋急转弯。从侧面确实反映了我们的思维定势。单向链表元素的删除,我们会固定认为应该找到被删除结点的前一个结点进行操作,所以一开始并不能理解为什么只有一个参数(我在那里删除,删除什么?)。官方的解释十分清楚,在单向链表中仅知道被删除元素时,我们只能从其后面元素入手:先用后面结点...

2019-08-20 16:00:34 90

原创 【机器学习百问】9.既然有离线测试为什么需要在线A/B测试?如何进行?

难度系数: (1/5)答案:使用在与真实工作环境相似的线上,可以更真实的评估模型性能;什么是A/B测试:A/B测试是同时为产品制定A和B两个版本,让目标客户随机访问,收集体验数据和结果,最后分析,评估出较好的版本来正式采用;如何进行:将用户无偏的分到两个桶中,保证一个用户一次智能分进一个桶中,然后对两个桶中分别使用旧模型和新模型需要原因:离线评估无法完全消除模型过拟合的风险;离...

2019-08-20 14:58:12 588

原创 【机器学习百问】8.余弦距离是严格定义上距离吗?

难度系数: (2/5)答案: 不是考察知识点: 考察面试者对于距离定义的理解,以及简单的反证和推导。知识点1:距离的定义在一个几何中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性, 对称性,三角不等式)成立,则该实数可成为这对元素之间的距离。知识点2:推导过程1.正定性证明:2.对称性证明:3.三角不等式证明: 不满足三角形两边和大于第三边,故不满足...

2019-08-19 15:23:26 591

原创 【机器学习百问】7.什么时候用欧式距离什么时候用余弦距离?

难度系数(5分制): 2余弦相似度的定义: 余弦相似度为两个向量之间的夹角余弦值,取值范围[-1,1], 相同为1, 正交为0, 相反为-1。余弦距离的定义: 余弦距离=1-余弦相似度;故取值范围为[0,2]。余弦距离用来衡量不同样本在空间中的关联程度。取值范围稳定,含义清晰。体现向量方向之间的相对差异。欧式(欧几里得)距离定义: 衡量两点之间的直线距离。体现数值上的绝对差异。低维度...

2019-08-02 18:20:57 1910

原创 【机器学习百问】6.什么是P-R曲线? 用P-R还是用ROC?

难度系数(5分制): 3P-R曲线是什么: 以召回率Recall为横轴,精确率Precision为纵轴绘制的二维图像;用来直观的表示模型的性能;P-R曲线的特点: 正负样本比例变化会使得P-R曲线发生明显的=变化:(上图数据中的负祥本数量增加10倍后)都是用来挑选合适的分类模型,但与PR曲线相比ROC曲线对于样本变化更加稳定:相同数据下ROC曲线的走向趋势如下:负样本增加十倍后:...

2019-08-01 10:57:17 964

原创 【机器学习百问】5.什么是AUC?

难度系数(5分制): 2AUC定义: Area Under Curve;表示 ROC曲线下总面积,量化的反应二分类器模型性能;AUC一般取值为0.5~1,取值越大,代表模型性能越好;AUC存在的意义: 当两个模型的ROC曲线相交,或肉眼不能直观感受二者之间优劣关系时用来量化的评价指标;...

2019-07-26 17:22:39 525

原创 【机器学习百问】4.什么是ROC曲线,如何绘制ROC曲线?

难度系数(5分制): 1ROC的来源: Receiver Operating Characteristic Curve的简称;源于军事领域,在医学领域应用甚广;中文名叫“受试者工作特征曲线”;在机器学习中用来衡量二值分类器的性能;ROC定义:ROC曲线横轴为假阳性率=FP/N(假阳性个数/真实的负样本个数), 纵轴为真阳性率=TP/P(真阳性个数/真实的正样本个数),可以用来帮助二分类...

2019-07-25 16:02:02 2448

原创 【机器学习百问】3.RMSE均方误差什么时候失效?

难度系数(5分制): 1均方误差的定义: 回归问题中预测值与真实值的平均偏离程度;失效情况: 实际问题中会存在个别偏离程度非常大的离群点。比如在流量预测中,一些流量很小,刚上映或者刚获奖的影视作品,又或者一些媒体突发情况就会造成偏离程度很大的离群点。解决方案: Mean Absolute Percent Error MAPE(平均绝对百分比误差):把每个店的误差进行了归一化,降低了个...

2019-07-16 17:49:08 679

原创 【机器学习百问】2.精确率与召回率的权衡问题

难度系数(5分制): 1精确率与召回率的存在意义: 为解决分类问题中由于数据倾斜造成单一准确率失效问题。介绍精确率与召回率之前引入一个判定表:精确率定义Precision: Precision = TP/(TP+FP) 分类正确的正样本个数占分类器判定为正样本的比例,通常也称为查准率;召回率定义Recall: Recall = TP/(TP+FN) 分类正确的正样本个数占真正正样本的比例...

2019-07-15 15:07:57 782

原创 【机器学习百问】1.为什么准确率不好用?

难度系数(5分制): 1准确率定义: 分类正确样本占总体样本的比例 accuracy = n of correct / total;失效原因: 训练集中各类样本数量极端不均匀(数据偏斜), 导致准确率不能客观评价算法性能;假如我们预测某地区内人口年收入否达到50万美元,而实际训练数据中百分之八十人口未达到50万美元。如果总让分类器输出0,准确率也会达到80%;假如我们预测某地区人口是否...

2019-07-10 16:00:26 1302

原创 【读书笔记】【机器学习实战】第十六章:强化学习

阅读书籍为《Hands-On Machine Learning with Scikit-Learn & TensorFlow》王静源等翻译的中文译版《机器学习实战,基于 Scikit-Learn 和 TensorFlow》,本文中所有图片均来自于书籍相关部分截图。文章目录强化学习(RL)技术点策略搜索评估行为:信用分配问题策略梯度(未完成)马尔可夫决策过程MDP深层Q网络DQN(未完成)...

2019-05-15 20:35:21 457

原创 【读书笔记】【机器学习实战】第十五章:自动编码器

阅读书籍为《Hands-On Machine Learning with Scikit-Learn & TensorFlow》王静源等翻译的中文译版《机器学习实战,基于 Scikit-Learn 和 TensorFlow》,本文中所有图片均来自于书籍相关部分截图。文章目录什么是自动编码器?何为数据的高效表示?几种常见的自动编码器类型1.栈式(深度)自动编码器:TF实现栈式自动编码器提高训...

2019-05-08 16:43:56 578

原创 【读书笔记】【机器学习实战】第十四章:循环神经网络

阅读书籍为《Hands-On Machine Learning with Scikit-Learn & TensorFlow》王静源等翻译的中文译版《机器学习实战,基于 Scikit-Learn 和 TensorFlow》,本文中所有图片均来自于书籍相关部分截图。文章目录RNN是什么1.循环神经元2.记忆单元3.输入输出序列LSTM长期记忆单元GRU门限循环单元RNN的实现RNN是什么...

2019-04-24 17:29:33 892

原创 【读书笔记】【机器学习实战】第十三章:卷积神经网络

阅读书籍为《Hands-On Machine Learning with Scikit-Learn & TensorFlow》王静源等翻译的中文译版《机器学习实战,基于 Scikit-Learn 和 TensorFlow》,本文中所有图片均来自于书籍相关部分截图。文章目录CNN相关介绍卷积层介绍池化层介绍CNN常见架构其他CNN相关介绍卷积神经网络起源于1958年David H.H...

2019-04-19 17:51:41 458

原创 【读书笔记】【机器学习实战】第十二章:【本周暂停更新,此章将在所有章节更新完结后更新】

阅读书籍为《Hands-On Machine Learning with Scikit-Learn & TensorFlow》王静源等翻译的中文译版《机器学习实战,基于 Scikit-Learn 和 TensorFlow》,本文中所有图片均来自于书籍相关部分截图。上一章作者带我们讨论了如何优化网络本身来提升训练速度。但是当数据量过于庞大,问题过于复杂时,再好的网络也会变成让人难以忍受的慢...

2019-04-17 15:41:34 149

空空如也

空空如也

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

TA关注的人

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