- 博客(22)
- 收藏
- 关注
原创 C++随笔——实现两个数据交换(包括字符串交换)
1.三变量法#include "pch.h"#include <iostream>using namespace std;int main(){ int a, b, t; cout << "输入两个整数a和b:"; cin >> a >> b; cout << "交换前:a = " << a <<...
2019-08-28 20:21:54 8657 3
原创 C++随笔——动态内存分配
如果定义的变量或对象在程序运行时才能确定,编译器在编译时就无法为它们预先分配存储空间。栈:在函数内部声明的所有变量都将占用栈内存。堆:程序中未使用的内存,在程序运行时可用于动态分配内存。在C++中,动态分配内存可以保证程序在运行过程中根据实际需要申请适量的内存,使用结束后还可以释放。new 和 delete 运算new运算的作用: 按照指定类型和大小动态地分配内存,并且返回所分配的空间地...
2019-08-28 10:27:28 364
原创 C++随笔——构造数据类型(2)
参考视频:C++语言程序设计基础——清华大学郑莉老师参考教材:C++语言程序设计教程(第3版)清华大学出版社参考链接:https://blog.csdn.net/men_wen/article/details/526940691、指针数组:指针数组是以指针变量为元素的数组。定义格式如下:类型名 * 数组名[下标表达式];可以存储若干行字符串。 如:char * a[] = { "I'...
2019-08-28 09:10:59 245
原创 C++随笔——构造数据类型(1)
参考视频:C++语言程序设计基础——清华大学郑莉老师参考教材:C++语言程序设计教程(第3版)清华大学出版社定义:用基本类型构造的用户自定义数据类型,包括枚举、数组、指针、字符串、引用、结构与联合。一、枚举1、如果一个变量只有几种可能的取值,可以使用枚举类型来定义。定义格式如下:enum 枚举类型名 {枚举常量1, 枚举常量2,..., 枚举常量n};其中,枚举常量默认值为0,1,...
2019-08-08 08:31:04 1324
原创 C++随笔——“类与对象”查漏补缺
参考视频:C++语言程序设计基础——清华大学郑莉老师参考教材:C++语言程序设计教程(第3版)清华大学出版社1、private、public、protected为访问权限,用来控制对类的成员的存取,默认访问权限为private。默认访问权限,也叫作缺省访问权限,如:class b { int a;};这样写是私有的,相当于编译系统加上了private这个关键词。2、在C++中,c...
2019-08-05 21:30:24 276
原创 C++随笔——浅层复制与深层复制程序代码
出自:C++语言程序设计基础——清华大学郑莉老师一、浅层复制实现对象间数据元素的一一对应复制如下图,只是复制指针本身,两个指针所指的内存单元相同,数组没有被复制。所以析构的时候会出错,因为指针1指向的内存单元已经被析构了,在析构指针2指向的内存单元时 自然会出错。#include "pch.h"#include <iostream>//#include<vecto...
2019-08-04 08:54:55 828
原创 C++随笔——将动态数组封装成类
出自:C++语言程序设计基础——清华大学郑莉老师#include "pch.h"#include <iostream>#include<cassert>using namespace std;class Point {private: int x, y;public: Point() :x(0), y(0) { cout << "调用默认...
2019-08-03 15:21:46 620
原创 神经网络前向传播和反向传播——图示理解
听了吴恩达老师的课程之后,按照老师的方法画出神经网络中前向传播和反向传播的示意图,如有错误,请交流指正!其中,caches部分表示“缓存的信息”,以用于后面计算中的调用。每一步骤所需的数据已用不同颜色的框和箭头标出。...
2019-08-03 08:31:05 2327
原创 C++随笔——指针类型的函数
出自:C++语言程序设计基础——清华大学郑莉老师参考:C++语言程序设计教程(第3版)清华大学出版社一、指针作为函数参数Why?①需要数据双向传递时(引用也可以达到此效果)②需要在不同的函数之间传递大量数据时,只传数据的首地址可以减小开销、提高效率概念指针作为函数参数是一种地址传递方式。指针可以作为函数的形参,也可以作为函数的实参。当指针作为函数的形参时,在调用时实参将值传递给形参,...
2019-08-02 08:59:20 1039
原创 机器学习——logistic回归
摘自——吴恩达深度学习视频此算法适用于二分类问题一、logistic回归的输出函数其中, sigmoid函数的公式 如下:二、logistic回归的代价函数已知:logistic回归的输出函数:上标(i)表示第i个训练样本。单个样本的损失函数:在学习logistic回归的参数时,为了保证优化目标是凸优化,不会采用线性回归中的均方误差来表示损失函数。而是定义如下:m个样本...
2019-08-01 17:20:40 252
原创 支持向量机(SVM)——线性可分支持向量机学习算法
线性可分支持向量机的对偶算法: 应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。概述对线性可分训练数据集,假设对偶最优化问题的解为可以由此得到原始最优化问题的解。定理设是对偶最优化问题的解,则存在下标j,使得αj*>0,并可求得原始最优化问题的解:由此定理,分离超平面可以写成:分类决策函数可以写成:由上式可知,分类决策函数只依赖于输入x和训练样本输入的内...
2019-07-28 12:06:51 1506
原创 统计学习方法——拉格朗日对偶性
摘自——李航老师《统计学习方法》附录在学习SVM时,感觉对偶性有点难以理解,在看了《统计学习方法》和一些博客后,写了这篇笔记。主要是对于含有不等式约束的情况下,可以应用KKT(库恩-塔克)条件的内容。以下附上一些博客链接:https://blog.csdn.net/xianlingmao/article/details/7919597https://www.cnblogs.com/xxrx...
2019-07-27 09:15:50 434
原创 机器学习——支持向量机(SVM)之超平面、间隔与支持向量
描述SVM是一种二类分类模型,基本模型是定义在特征空间中的间隔最大的线性分类器。学习策略是间隔最大化。训练集线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;训练集近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;训练集线性不可分时,通过核技巧与软间隔最大化,学习一个非线性支持向量机;超平面附上链接,一篇讲解超平面的干货,讲的很好!!!http://www.sohu...
2019-07-26 17:09:47 10832
原创 统计学习——基础概念、过拟合与正则化、分类与回归问题
监督学习: 学习一个模型,使得模型能够对任意给定的输入,对其相应的输出做出一个好的预测。监督学习从训练数据集合中学习模型,对测试数据进行预测。输入变量与输出变量均为连续变量的预测问题称为回归问题。输出变量为有限个离散变量的预测问题称为分类问题。输入变量与输出变量均为变量序列的预测问题称为标注问题。联合概率分布: 监督学习中假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y),其中,...
2019-07-26 09:21:37 892
原创 机器学习优化算法——梯度下降法
梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。
2019-07-23 08:32:15 1322
原创 C++随笔——类的静态成员
出自:C++语言程序设计基础——清华大学郑莉老师一、静态数据成员用关键字static声明例如:static int count;为该类的所有对象共享,具有全局寿命必须在类外定义和初始化#include<iostream>using namespace std;class Point {private: int x, y; static int count; /...
2019-07-12 09:32:46 213
原创 C++随笔——构造函数
出自:C++语言程序设计基础——清华大学郑莉老师作用:当类中的对象被创建时使用特定的值构造对象,将对象初始化为一个特定的初始状态,在对象被创建时自动调用形式:①函数名与类名相同②不能定义返回值类型,函数体内也不能有return语句③可以重载、内联…默认构造函数:第一类情形:参数表为空的构造函数第二类情形:全部参数都有默认值的构造函数注:以上两类情形不能同时出现,否则编译时...
2019-07-12 08:17:02 191
原创 C++随笔——组合类
组合类——概念类中的成员是另一个类的对象关键:既要对本类中的基本类型成员数据初始化,也要对对象成员初始化贴下代码,建议一步一步地调试,理解构造组合类对象时如何调用构造函数和复制构造函数#include<iostream>#include<cmath>using namespace std;class Point {private: int x, y;...
2019-07-11 21:12:53 209
原创 C++ 随笔—— 结构体
出自:C++语言程序设计基础——清华郑莉老师C++ 中,结构体是一种特殊的类与类的唯一区别:结构体的缺省访问权限是public成员,而类的是private成员什么时候用呢?定义主要用来保存数据,而没有什么**操作(函数)**的类型定义struct 结构体名称 {公有成员**(默认)**protected:保护型成员private:私有成员};例题#include<...
2019-07-11 20:54:48 155
原创 机器学习——“奥卡姆剃刀”原理
百科:切勿浪费较多东西去做,用较少的东西,同样可以做好的事情。"简 单 性 原 则(1)在机器学习中选择算法时,其含义是:在其他条件一样的情况下,选择简单的那个。(2)李航《统计学方法》一书中,在应用于模型选择时可以理解为:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。正则化就符合奥卡姆剃刀原理。...
2019-07-09 21:40:59 3952
原创 “死记硬背”式 理解 np.argmax(arr,axis)!!!!!!!!!!!!!!!!!!!!!!!!!
1、对于一维矩阵:2、对于二维矩阵:axis = 0 取出每列最大值的索引axis = 1 取出每行最大值的索引3、对于三维矩阵(334):如下图,axis = 0 时取出a[1][1]、a[2][1]和a[3][1],组成(3,4)维矩阵,取出每列最大值的索引,结果为:[2 1 0 0]取出a[1][2]、a[2][2]和a[3][2],组成(3,4)维矩阵,取出每列最大值...
2019-07-07 21:40:01 454
原创 numpy.insert axis 用法
numpy.insert(arr,obj,value,axis=None)axis = 0时,按行插入axis = 1时,按列插入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展...
2019-07-07 11:00:45 1242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人