x-jeff blog

Make progress every day.

【算法基础】【排序】堆排序

二叉树,满二叉树,完全二叉树,堆排序

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.二叉树 在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。 👉一棵深度为$k$,且最底层有$2^{(k-1)}$个节点称之为满二叉树。 👉若设二叉树的深度为$h$,除第...

【OpenCV基础】第十九课:霍夫变换

霍夫变换之直线检测,cv::HoughLines,cv::HoughLinesP,霍夫变换之圆检测,cv::HoughCircles

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.霍夫变换 霍夫变换(Hough Transform)是一种特征提取手段,用来提取形状(直线、圆等)边界。 ⚠️前提:霍夫变换检测边缘只对边缘图片(经过canny或者sobe算子提取特征后的图片)有效,对一般的图片无效。 2.霍夫变换-直线检测 2.1.笛卡尔坐标霍夫空间 在笛卡尔坐标系中,一条直线可由两个点$A...

【C++基础】第二十五课:成员访问运算符和条件运算符

成员访问运算符,条件运算符

【C++基础】系列博客为参考《C++ Primer中文版(第5版)》(C++11标准)一书,自己所做的读书笔记。 本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.成员访问运算符 点运算符和箭头运算符都可用于访问成员,其中,点运算符获取类对象的一个成员;箭头运算符与点运算符有关,表达式ptr->men等价于(*ptr).men: 1 2 3 4 string ...

【Python基础】第二十一课:网页浏览记录资料分析

parse_dates,pandas.unique,pandas.reset_index,pandas.merge,pandas.Series.dt.date,pandas.concat

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.读取用户购买记录 1 2 3 4 import pandas as pd m_cols = ["Time", "Action", "User", "Product", "Quantity", "Price"] orders = pd.read_csv("purchase_order.tab", sep='\t', p...

【论文阅读】Going deeper with convolutions

ILSVRC2014(分类任务冠军/目标检测任务冠军):GoogLeNet,Inception-v1

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.介绍(Introduction) GoogLeNet的参数数量比AlexNet少12倍,但精度比AlexNet更高。此外,GoogLeNet并没有只关注于提高准确率,还考虑了算法效率,在预测阶段将其计算成本控制在1.5亿次加乘运算之内。本文提出了一种有效的深度神经网络结构用于计算机视觉,取名为Inception。Goo...

【机器学习基础】第二十一课:支持向量机之核方法

表示定理,核方法,核线性判别分析(KLDA)

【机器学习基础】系列博客为参考周志华老师的《机器学习》一书,自己所做的读书笔记。 本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.表示定理 无论SVM还是SVR,学得的模型总能表示成核函数$\kappa (\mathbf x,\mathbf x_i)$的线性组合。不仅如此,事实上我们有下面这个称为“表示定理”(representer theorem)的更一般的结论:...

【算法基础】【排序】快速排序

归并排序

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.快速排序 排序算法的思想非常简单,在待排序的数列中,我们首先要找一个数字作为基准数(pivot)。为了方便,我们一般选择第1个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要把这个待排序的数列中小于基准数的元素移动到待排序的数列的左边,把大于基准数的元素移动到待排序的数列的右边。这时,左右两个分区的元素就相对...

【C++基础】第二十四课:递增和递减运算符

递增和递减运算符

【C++基础】系列博客为参考《C++ Primer中文版(第5版)》(C++11标准)一书,自己所做的读书笔记。 本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.前言 递增和递减运算符有两种形式:前置版本和后置版本。 前置版本:首先将运算对象加1(或减1),然后将改变后的对象作为求值结果。 后置版本:将运算对象加1(或减1),但是求值结果是运算对象改变之...

【OpenCV基础】第十八课:Canny边缘检测算法

Canny边缘检测算法,cv::Canny

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.Canny边缘检测算法 Canny边缘检测算法是1986年提出的。其主要分为5步: 高斯模糊。 灰度转换。 计算梯度(通常使用Sobel算子)。 非最大信号抑制。 高低阈值输出二值图像。 前三步在之前的博客中都有所介绍,现在着重讲解下后两步。 👉第4步:非最大信号抑制: 经过前三步的处理...

【Python基础】第二十课:使用pandas绘制统计图表

pandas.DataFrame.plot(),pandas.DataFrame.rolling()

本文为原创文章,未经本人允许,禁止转载。转载请注明出处。 1.读取数据 我们以爬取的股价信息为例: 1 2 3 import pandas_datareader df = pandas_datareader.DataReader('BABA', data_source='yahoo', start='2020-05-01') print(df.head()) 2.pan...