自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 try_catch

出core不能捕获异常。

2023-11-21 16:12:18 52

原创 C++特性

回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。同时,有一些需求必须要使用回调函数来实现。非常知名的回调函数调用有C/C++标准库stdlib.h/cstdlib中的快速排序函数qsort和二分查找函数bsearch中都会要求的一个与strcmp类似的参数,用于设置数据的比较方法。反射机制仿函数/函数对象。

2023-11-20 15:30:04 89

原创 万能引用与完美转发

1、完美转发实现了参数在函数调用传递(转发)过程中保持它的左值或者右值的属性不变。

2023-11-09 16:06:40 172

原创 typename、typedef、using对比

在c++的标准库中,因为类继承关系比较复杂和模板使用比较多的原因,源代码中充斥着typename、typedef和using这三个关键字。

2023-10-09 16:46:24 464

原创 智能指针梳理

RAII()资源获取即初始化。它是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。至此我们可以看到实际上就是把一份资源的责任托管给了一个对象。这种做法有两大好处:不需要显式释放资源。析构时自动调用。采用这种方式,对象所需的资源在其生命期内始终保持有效。RAII。

2023-10-09 12:50:11 67

原创 仿函数介绍

在我们写代码时有时会发现有些功能的实现的代码,会不断的在不同的成员函数中用到,但是又不好将这些代码独立出来成为一个类的一个成员函数。但是又很想复用这些代码。这时就可以用仿函数了,写一个简单类,实现一个operator(),在类实例化时,就将要用的,非参数的元素传入类中。仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。

2023-10-08 17:25:48 44

原创 类继承关系梳理

A: 基类有很多重载函数,而派生类重写了基类的函数,那么默认情况下,基类中的这些所有的重载函数都不可以使用了。参考hello函数如果我们希望只覆盖基类中的一部分函数,而其他函数在派生类中还没有被覆盖,一种使用方法就是使用using声明。这样的话就无须覆盖基类中的每一个重载版本了using声明只需要给出名称,而不需要给出参数列表,因此基类中的所有重载函数在派生类中都可以使用了。

2023-09-28 16:39:08 61

原创 构造函数中,成员变量一定要通过初始化列表来初始化的几种情况

1、类成员为const类型2、类成员为引用类型究其因const对象或引用只能初始化但是不能赋值。构造函数的函数体内只能赋值而不是初始化,因此初始化const对象或引用的唯一机会是构造函数函数体之前的初始化列表中。从无到有叫初始化,初始化(调用拷贝构造函数)创建了新对象;赋值(调用赋值操作符)没有创建新对象,而是对已有的对象赋值。 3、类成员为没有默认构造函数的类类型4、如果类存在继承关系,派生类必...

2018-06-15 21:00:31 1861

转载 降维方法

A.主成分分析PCAB.线性判别分析LDAC.深度学习SparseAutoEncoderD.矩阵奇异值分解SVDE.最小二乘法LeastSquares正确答案:ABCD解析:降维的3种常见方法ABD,都是线性的。深度学习是降维的方法这个就比较新鲜了,事实上,细细想来,也是降维的一种方法,因为如果隐藏层中的神经元数目要小于输入层,那就达到了降维,但如果隐藏层中的神经元如果多余输入层,那就不是降维了。...

2018-06-13 22:19:24 496

转载 需要用到先验概率的算法

在统计模式识分类问题中,当先验概率未知时,可以使用()机器学习 ML基础 易A.最小损失准则B.N-P判决C.最小最大损失准则D.最小误判概率准则正确答案:BC@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html选项 A 最小损失准则中需要用到先验概率选项B 在贝叶斯决策中,对于先验概率p(y),分为已知和未知两种情况。 1...

2018-06-13 22:15:01 1002

转载 线性分类器分类准则

 以下()属于线性分类器最佳准则?机器学习 ML模型 易A.感知准则函数B.贝叶斯分类C.支持向量机D.Fisher准则正确答案:ACD@刘炫320,本题题目及解析来源:http://blog.csdn.net/column/details/16442.html线性分类器有三大类:感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。感知准则函数 :准则函数以使错分类样本到分界面...

2018-06-13 16:33:25 1842

转载 为什么引入非线性激励函数

BAT机器学习面试1000题系列(第1~305题) - CSDN博客  https://blog.csdn.net/v_july_v/article/details/78121924为什么引入非线性激励函数?深度学习 DL基础 中@张雨石:第一,对于神经网络来说,网络的每一层相当于f(wx+b)=f(w'x),对于线性函数,其实相当于f(x)=x,那么在线性激活函数下,每一层相当于用一个矩阵去乘以...

2018-06-13 11:26:59 2792

原创 内存对齐

C++内存对齐总结 - Chandler Qian - 博客园  https://www.cnblogs.com/zrtqsk/p/4371773.html规则1、第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。2、在数据成员完成各自对齐之后,类(结构或联合)本身也要进行对齐,对齐将按照#pragma...

2018-06-13 09:24:09 102

转载 深度学习问题

深度学习岗位面试问题整理笔记  https://zhuanlan.zhihu.com/p/25005808CNN最成功的应用是在CV,那为什么NLP和Speech的很多问题也可以用CNN解出来?为什么AlphaGo里也用了CNN?这几个不相关的问题的相似性在哪里?CNN通过什么手段抓住了这个共性?以上几个不相关问题的相关性在于,都存在局部与整体的关系,由低层次的特征经过组合,组成高层次的特征,并且...

2018-06-12 20:29:44 982

原创 参数估计

构造点估计常用的方法是:  ①矩估计法。用样本矩估计总体矩,如用样本均值估计总体均值。  ②最大似然估计法。于1912年由英国统计学家R.A.费希尔提出,用来求一个样本集的相关概率密度函数的参数。(在以后的文章中专门讨论)  ③最小二乘法。主要用于线性统计模型中的参数估计问题。  ④贝叶斯估计法。基于贝叶斯学派(见贝叶斯统计)的观点而提出的估计法。...

2018-06-12 10:35:07 204

转载 最小二乘法与梯度下降法的区别

最小二乘法与梯度下降法的区别? - CSDN博客  https://blog.csdn.net/qq_27514297/article/details/53508149狭义的最小二乘法:指的是在线性回归下采用最小二乘准则(或者说叫做最小平方),进行线性拟合参数求解的、矩阵形式的公式方法。所以,这里的(最小二乘法)应叫做(最小二乘算法)或者(最小二乘方法,百度百科【最小二乘法】词条中对应的英文为(T...

2018-06-11 21:33:57 16263

转载 特征工程

使用sklearn做单机特征工程 - jasonfreak - 博客园  http://www.cnblogs.com/jasonfreak/p/5448385.html数据预处理  2.1 无量纲化    2.1.1 标准化    2.1.2 区间缩放法    2.1.3 标准化与归一化的区别  2.2 对定量特征二值化  2.3 对定性特征哑编码  2.4 缺失值计算  2.5 数据变换3 特...

2018-06-11 16:57:17 178

转载 malloc/free与new/delete的区别

百度笔试题:malloc/free与new/delete的区别 - CSDN博客  https://blog.csdn.net/hackbuteer1/article/details/67891641、本质区别malloc/free是C/C++语言的标准库函数,new/delete是C++的运算符。对于用户自定义的对象而言,用maloc/free无法满足动态管理对象的要求。对象在创建的同时要自动执...

2018-06-07 22:34:53 150

转载 参数模型与非参数模型

LR是参数模型,SVM是非参数模型。参数模型、非参数模型(以及半参数模型)的概念应该源自于统计学中。统计专业中有一门课程叫做《非参数统计》,研究的对象就是秩检验、核密度估计等。在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存...

2018-06-01 22:59:44 32745 11

转载 overfitting

正则化(Regularization)L2正则化:目标函数中增加所有权重w参数的平方之和, 逼迫所有w尽可能趋向零但不为零. 因为过拟合的时候, 拟合函数需要顾忌每一个点, 最终形成的拟合函数波动很大, 在某些很小的区间里, 函数值的变化很剧烈, 也就是某些w非常大. 为此, L2正则化的加入就惩罚了权重变大的趋势.L1正则化:目标函数中增加所有权重w参数的绝对值之和, 逼迫更多w为零(也就是变稀...

2018-06-01 11:18:33 145

转载 估计误差和近似误差

如何理解和区分近似误差和估计误差? - 知乎  https://www.zhihu.com/question/60793482机器学习—近似误差与估计误差理解 - CSDN博客  https://blog.csdn.net/weixin_37895339/article/details/78794190近似误差:可以理解为对现有训练集的训练误差。 估计误差:可以理解为对测试集的测试误差。近似误差关...

2018-05-28 16:15:08 1227

原创 欧氏距离缺点及改进及马氏距离

欧氏距离,最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求。例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性...

2018-05-28 15:50:05 23803 3

转载 机器学习算法步骤

机器学习算法一般是这样一个步骤:1)对于一个问题,我们用数学语言来描述它,然后建立一个模型,例如回归模型或者分类模型等来描述这个问题;2)通过最大似然、最大后验概率或者最小化分类误差等等建立模型的代价函数,也就是一个最优化问题。找到最优化问题的解,也就是能拟合我们的数据的最好的模型参数;3)然后我们需要求解这个代价函数,找到最优解。这求解也就分很多种情况了:      a)如果这个优化函数存在解析...

2018-05-26 22:48:03 1624

转载 C++ 对象的内存布局

多重继承时,以声明顺序在内存中存储A/B的空间(即虚表+数据),再存储C的数据;C中重新实现的虚函数会在A/B的虚表中取代原有的虚表项,C中新加的寻函数会加在A中虚表的最后。C++ 对象的内存布局(上) - CSDN博客  https://blog.csdn.net/haoel/article/details/3081328...

2018-05-23 16:07:18 461

转载 String与数组

求长度C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度。其中str.length()和str.size()是用于求string类对象的成员函数不包括‘/0’strlen(str)是用于求字符数组的长度,其参数是char*。不包括'\0'C++中字符数组与string的相互转换 - Boblim - 博客园  https://www.cnblogs...

2018-05-21 16:57:56 1715

转载 C++ STL中容器的使用总结

setset<string>result;result.insert(str);result.erase(iter)//iter为集合迭代器for(set<string>::iterator it=result.begin();it!=result.end();it++)        {            res.push_back(*it);/...

2018-05-06 22:19:01 396

转载 堆和栈的区别

一、堆栈空间分配区别:1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。二、堆栈缓存方式区别:1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收...

2018-04-29 22:33:00 161

转载 Jupyter notebook教程

https://blog.csdn.net/red_stone1/article/details/72858962Jupyter notebook(又称IPython notebook)是一个交互式的笔记本,支持运行超过40种编程语言。成为人们创造优美的可交互式文档和教育资源的一个强大工具。在使用这个notebook之前,你需要先进行安装。你可以在Jupyter website上找到完整的安装步骤...

2018-04-11 15:34:46 280

转载 C++内存管理

https://blog.csdn.net/xiongchao99/article/details/74524807(写的不太一样)转自C/C++内存管理详解 http://chenqx.github.io/2014/09/25/Cpp-Memory-Management/ 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。  栈:在执行函数时,函数内局部变量...

2018-04-10 17:11:49 101

原创 C++关键字

注:上表中为C++98/03中的63个关键字,其中红色标注为C语言中的32个关键字。C++11中有73个关键字,新增加的10个为:alignas、alignof、char16_t、char32_t、constexpr、decltype、noexpect、nullptr、static_assert、thread_localhttps://blog.csdn.net/scmuzi18/article/...

2018-04-09 20:41:17 284

转载 C++各种类大小

转自C++中各种类的大小注:本文测试实例使用的编译器版本为clang-703.0.29,系统int长度为4字节,指针长度为8字节。1. 空类class A {};空类sizeof的结果为1,为什么不是0呢?因为C++标准规定两个不同实例的内存地址必须不同(戳这里),所以用这一个字节来占用不同的内存地址,让空类的两个实例可以相互区分。而大多数编译器支持空基类优化(Empty Base Class O...

2018-04-09 11:24:47 307

转载 梯度下降GD

转自https://www.cnblogs.com/maybe2030/p/5089753.html阅读目录1. 批量梯度下降法BGD2. 随机梯度下降法SGD3. 小批量梯度下降法MBGD4. 总结  在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点。  下面我们以线性回归算法来对三种梯度下降法进行比...

2018-04-06 15:36:25 330

转载 C++

C++ Primer 学习笔记(持续更新......)extern 关键字的作用:只进行声明而不定义,表示是当前变量或者函数的定义不在当前模块(文件)内,在其他的模块中,告诉编译器在其它文件中找这个变量或者函数的定义。一般都把一些经常用到的枚举和变量之类的写在.h头文件中。这样要引用时直接include “头文件名”就可以了调用里面所有的枚举和变量了。在大型项目中,引用别的.c文件中的函数则只能用...

2018-04-06 11:18:36 106

原创 C++中继承及virtual小结

一、继承基础知识C++中的继承1.1继承的基本概念类与类之间的关系has-A,包含关系,用以描述一个类由多个“部件类”构成,实现has-A关系用类的成员属性表示,即一个类的成员属性是另一个已经定义好的类。use-A,一个类使用另一个类,通过类之间的成员函数相互联系,定义友元或者通过传递参数的方式来实现。(和组合不同)is-A,即继承关系,关系具有传递性。继承的特点子类拥有父类的所有属性和方法(除了...

2018-04-04 18:01:17 8380 2

转载 L1和L2

L1范数是指向量中各个元素绝对值之和,用于特征选择;L2范数 是指向量各元素的平方和然后求平方根,用于 防止过拟合,提升模型的泛化能力L1与L2区别:使用L1可以得到稀疏的权值;用L2可以得到平滑的权值机器学习中正则化项L1和L2的直观理解L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,...

2018-03-31 22:18:51 745

转载 大数据

说说自己对于大数据的理解大数据与数据分析、挖掘而今所说的大数据,本质上还是数据挖掘,对已有的数据进行分析、挖掘,统计分析出已有数据的特征,或者找到已有数据的运行规律,预测未来的状态。这与传统的数据挖掘的目的本无二质。1)技术基础、处理手段不一样大数据需要处理海量异构的数据,需要新的技术和处理手段才能凑效,云存储+分布式处理是解决问题的灵丹妙药。常用的hadoop+python使其落地生根。而以前尽...

2018-03-30 11:40:27 177

转载 过拟合欠拟合

一篇文章,带你明白什么是过拟合,欠拟合以及交叉验证在本文中也许你会掌握机器学习中最核心的概念:偏差-方差权衡.其主要想法是,你想创建尽可能预测准确并且仍能适用于新数据的模型(这是泛化).危险的是,你可以轻松的在你制定的数据中创建过度拟合本地噪音的模型,这样的模型是无用的,并且导致弱泛化能力,因为噪声是随机的,故而在每个数据集中是不同的.从本质上讲,你希望创建仅捕获数据集中有用成份的模型.另一方...

2018-03-30 11:36:09 243

转载 为什么要用交叉验证

用交叉验证改善模型的预测表现 求解神经网络做十字交叉验证k=10,这种方法到底是得到十个模型还是一个模型。1、在训练模型时,如果已经预先指定好超参数了,这时候k交叉验证训练出来的模型只是不同数据训练出来的参数不同的相同结构的模型。一些文章中预先指定了超参数,再用k交叉验证只能单单说明在这组超参数下,模型的准确率是这样的,并不能说明当下的这组超参数是比其他的好。2、k交叉验证的用法是分别对自己想要尝...

2018-03-28 22:57:33 2605

转载 五大常用算法

五大常用算法——分治法,动态规划,贪心,回溯法,分支界限法一、分治算法1.1、基本概念   在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变...

2018-03-28 22:42:11 158

空空如也

空空如也

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

TA关注的人

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