自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 机器学习(25) 聚类Clustering之二:直观感受K-means算法

从一个2维的样本集开始,该实现可以帮助读者对k-means算法有一个直观的感受。然后将使用k-means算法对图像进行压缩,通过减少颜色数量,直到只出现在该图像中最常见的那些颜色。

2023-11-02 12:12:18 189

原创 机器学习(24) 聚类Clustering之一:无监督学习

根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习,“监督”的意思可以直观理解为“是否有标注的数据”。无监督学习的特点是,传递给算法的数据在内部结构中非常丰富,而用于训练的目标和奖励非常稀少。无监督学习算法学到的大部分内容必须包括理解数据本身,而不是将这种理解应用于特定任务。聚类是无监督学习的常见任务,就是将观察值聚成一个一个的组,每一个组都含有一个或者几个特征,‎聚类的目的在于‎‎把相似的东西聚在一起,而我们并不关心这一类是什么‎‎。

2023-11-02 11:25:48 276

原创 机器学习(23) SVM 示例4:【Python】解决二分类(示例1、2、3)

z = svc.predict(np.c_[x.flatten(),y.flatten()])#因为predict中是要输入一个二维的数据,因此需要展开。z = svc.predict(np.c_[x.flatten(),y.flatten()])#因为predict中是要输入一个二维的数据,因此需要展开。print(f'预测样本数据X的对数概率 svc.predict_log_proba(X) ={svc1.predict_log_proba(X)}'),10的0次幂,10,1000,10000。

2023-08-08 19:44:24 1391

原创 机器学习(22) SVM 示例3:【Octave】解决二分类(非线性SVM[边界不清晰])

这里C和σ都采用公比为3的等比数列进行逐次验证,每次根据这两个对应的值去训练得到参数theta,然后得到交叉验证集的准确率,通过比较这次与上次的准确率,选用准确率更高的参数值。%% ==================== Part 2: 非线性SVM训练 ====================%% =============== Part 1: 加载并可视化数据 ================%% =============== Part 1: 加载并可视化数据 ================

2023-08-08 19:28:34 224

原创 机器学习(21) SVM 示例2:【Octave】解决二分类(非线性SVM[边界清晰])

% ==================== Part 2: 线性SVM训练 ====================%% =============== Part 1: 加载并可视化数据 ================%% =============== Part 1: 加载并可视化数据 ================% y 训练集输出特征向量,是一个包含1和0的列向量,行数为样本数,列数为1。% 输出: pred 是一个行数为样本数,列数为1的{0,1}值的预测列向量。

2023-08-08 19:13:57 153

原创 机器学习(20) SVM 示例1:【Octave】解决二分类(线性SVM)

plotData(X, y)绘制数据,% 输入参数: X 输入特性矩阵,行数为样本数,列数为2,每一行是一个二维点% y 输出特性向量,行数为样本数,列数为1,每个元素值为0或1.% 输出结果: 样本的输出特性向量为1的打上‘+’标记,为0的打上‘o'标记figure;hold on;hold off;

2023-08-08 19:05:55 374

原创 机器学习(19) SVM 支持向量机

是:和是n维欧氏空间中的两个点集。如果存在n维向量和实数b。

2023-08-08 18:42:47 147

原创 机器学习(18) 训练集、测试集及模型效果评估

一般先绘制训练集、验证集的误差曲线。以训练集的学习曲线为例,以训练集样本的数目m为横坐标,以平均误差平方和为纵坐标绘制曲线,观察训练误差随训练样本集大小变化之间的关系。如果我们有100个样例的训练集,我们会刻意改变训练集的大小m(比如,m=10,20,30,...,100),当m变化时训练集的平均误差平方和也会跟着变化,这样就可以观察我们的算法随着训练集大小的变化其在训练集上的平均误差平方和方面的表现。

2023-08-08 17:29:35 2409

原创 机器学习(17) 实例:利用神经网络对图片中手写数字 0-9 进行识别

实现反向传播 backpropagation神经网络算法, 对图片中手写数字 0-9 进行识别手写数字图片数据。每张图片20px * 20px,也就是一共400个特征。

2023-08-04 11:20:20 724

原创 机器学习(16) 神经网络模型进阶

利用神经网络训练数据,最重要的首先是确定神经网络的结构。

2023-08-04 10:54:42 54

原创 机器学习(15) 神经网络:常见的神经网络架构

用神经网络表示如下:可以说,神经网络就是由一个个逻辑回归模型连接而成的,它们彼此作为输入和输出。输出结果可表示为:训练集为:当时,表示识别的是行人当时,表示识别的是汽车当时,表示识别的是摩托车当时,表示识别的是卡车用0与1的组合成的向量代替1,2,3,4:

2023-08-04 10:14:04 89

原创 机器学习(14) 运用神经元解决同或(XNOR)、异或(XNOR)分类问题

就像单层神经元(无隐藏层)无法表示逻辑。

2023-08-04 10:07:17 1878

原创 机器学习(13) 神经网络:简介

h。

2023-08-04 09:42:55 114

原创 机器学习(12) 线性回归、逻辑回归的正则化算法

对于线性回归(的求解),我们之前运用了两种学习算法,一种基于梯度下降,一种基于正规方程。

2023-08-04 08:38:36 187

原创 机器学习(11) 正则化(Regularization)

我们把此类情况称为欠拟合(underfitting),或者叫作叫做高偏差(bias)。所以,我们把这类情况叫做过拟合(overfitting),也叫高方差(variance)。与高偏差一样,高方差同样也是一个历史上的叫法。从第一印象上来说,如果我们拟合一个高阶多项式,那么这个函数能很好的拟合训练集(能拟合几乎所有的训练数据),但这也就面临函数可能太过庞大的问题,变量太多。过度拟合的问题通常发生在变量(特征)过多的时候。

2023-08-03 16:44:20 71

原创 机器学习(10) 逻辑回归:多元分类(Multi-class classification)

对于数据集中存在多个类别的分类问题,我们可以采用一种叫做 One-vs-rest 的方法,将其转化成二元分类的问题,然后再进行解决。前面的是对于二元分类问题,应该如何去处理其预测函数、代价函数和梯度下降算法。但是多元的分类才是生活常见的情况。例如对于邮件,我们可以分为工作、 朋友、家人、兴趣;例如对于天气,我们可以分为晴朗、多云、下雨、有雪。对于这样的多元分类,应该如何处理呢?分类情况其实很简单,把多元分类划分为多个二元分类就可以了:这样我们就能将多元分类问题当成二元分类问题进行解决。

2023-08-03 12:44:10 1710

原创 机器学习(9) 逻辑回归示例:实现非线性逻辑回归

answer['F{}{}'.format(i-j,j)]=np.power(x1,i-j)*np.power(x2,j) #形成字典中的key-value。theta=gradientDescent(mappingX,y,theta,alpha,iterations,X.shape[0],lamda) #进行正则化的梯度下降。answer.insert(0,"ones",np.ones((answer.shape[0],1))) #插入第一列全1。

2023-08-03 11:29:00 48

原创 机器学习(8) 逻辑回归示例:实现线性逻辑回归

temp0=theta[0][0]-alpha*(ys*(X[:,0].reshape(X.shape[0],1))).sum() #注意这里一定要将X[:,1]reshape成向量。输入测试样例以已经本文最前面贴出分别有两组数据。print('accuary:',(yanswer<0.5).sum()/y.shape[0]*100,'%') #计算准确率并打印结果。yy=(theta[0][0]+theta[1][0]*xx)/(-theta[2][0]) #绘制决策边界。

2023-08-03 11:22:05 78

原创 机器学习(7) 逻辑回归:二分类

由线性回归的代价函数:若我们定义:则有:称为逻辑回归的单样本代价函数称为逻辑回归的代价函数,我们将代入代价函数,则有:该函数是个非凸函数,这会导致在梯度下降时没有全局最优解。于是我们必须另外选择一个代价函数。如:这个函数看起来很复杂,但画出图形如下:通过上面图形,我们知道:预测:如果,预测y=1,此时Cost=0。(正常预测)如果,预测y=1,此时Cost=0.8。(正常预测)如果,预测y=1,此时Cost→∞。(极不正常预测)反之:如果。

2023-08-03 10:16:44 104

原创 机器学习(6) 逻辑回归:概要

虽然我们人类都不喜欢被分类,被贴标签,但数据研究的基础正是给数据“贴标签”进行分类。类别分得越精准,我们得到的结果就越有价值。分类是一个有监督的学习过程,目标数据库中有哪些类别是已知的,分类过程需要做的就是把每一条记录归到对应的类别之中。由于必须事先知道各个类别的信息,并且所有待分类的数据条目都默认有对应的类别,因此分类算法也有其局限性,当上述条件无法满足时,我们就需要尝试聚类分析。

2023-08-03 09:15:23 29

原创 机器学习(5) 多元线性回归

假设样本个数为m,具体为。

2023-08-02 20:05:37 156

原创 机器学习(4) 梯度下降Gradient descent

在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是,简称或者∇fxy)。对于在点的具体梯度向量就是.或者,如果是3个参数的向量梯度,就是以此类推。

2023-08-02 19:12:35 208

原创 机器学习(3) 一元线性回归(最小二乘法实现)

一元线性回归是分析只有一个和线性相关关系的方法。一个经济指标的数值往往受许多因素影响,若其中只有一个因素是主要的,起决定性作用,则可用一元线性回归进行预测分析。,是根据和的相关关系,由于市场现象一般是受多种因素的影响,而并不是仅仅受一个因素的影响。所以应用一元线性回归分析预测法,必须对影响市场现象的多种因素做全面分析。只有当诸多的影响因素中,确实存在一个对因变量影响作用明显高于其他因素的变量,才能将它作为自变量,应用一元相关回归分析市场预测法进行预测。

2023-08-02 17:52:24 347

原创 机器学习(2) 机器学习中的俗语

对于给定的训练集,假设函数为。称为假设函数h的代价函数。对于一元线性回归,其代价函数为。

2023-08-02 16:20:39 28

原创 机器学习(1) 简介

机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。机器学习与模式识别、统计学习、数据挖掘、计算机视觉、语音识别、自然语言处理等领域有着非常深的联系。任务T经验E性能P机器学习 = 通过经验E的改进后,机器在任务T上的性能p所度量的性能有所改进= T–>(从E中学习)–>P(提高)

2023-08-01 19:32:06 48

原创 opencv(56) 案例:银行卡号识别

python imutils包可以很简洁的调用opencv接口,轻松实现图像的平移,旋转,缩放,骨架化等操作。可以使用下列命令安装imutils包。

2023-08-01 19:03:19 231

原创 opencv(55) 深度神经网络:dnn模块

OpenCV自3.3版本开始,加入了对深度学习网络的支持,即DNN模块,它支持主流的深度学习框架生成与到处模型的加载。DNN模块的架构如下图所示:从上往下依次是:除了上述的加速方法外,DNN模块还有网络层面的优化。这种优化优化分两类,一类是层融合,还有一类是内存复用。层融合通过对网络结构的分析,把多个层合并到一起,从而降低网络复杂度和减少运算量。如上图所示,卷积层后面的BatchNorm层、Scale层和RelU层都被合并到了卷积层当中。这样一来,四个层运算最终变成了一个层运算。如上图所示,网络结构将卷积层

2023-07-27 09:03:50 787

原创 opencv(54) 深度神经网络:自定义dnn

新建一个4层神经网络:输入层【1个输入特征】、第1层隐含层【4个激活项】、第2层隐含层【4个激活项】、输出层【1个输出特征】,实现样本点的回归。# hidden1_nodes:第一隐藏层的激活项个数(Layer2)# hidden2_nodes:第二隐藏层的激活项个数(Layer3)# output_nodes: 输出节点数目(Layer4)# 2 构建DNN: 主要是设置各层神经网络的权重矩阵和偏置量。da:当前层激活项输出误差。# 偏置项b1。a:当前层激活项输出。

2023-07-27 08:52:58 323

原创 opencv(53) 视频处理之三:光流估计

光流估计需要满足一定前提亮度恒定:同一点随着时间的变化,其亮度不会发生改变。小运动:随着时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数。空间一致:一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。因为光流法基本方程约束只有一个,而要求x,y方向的速度,有两个未知变量。所以需要连立n多个方程求解。如果下面这辆车正向我们缓缓开来,右图是车辆的光流,它代表车辆在行驶过程中,每一帧图像的瞬时速度和方向。

2023-07-27 08:42:23 115

原创 opencv(52) 视频处理之二:背景建模

背景建模需要满足一定条件,保证摄像机拍摄位置不变,保证背景是基本不发生变化的。如路口的监控摄像机,只有车流人流等前景部分能发生移动,而马路树木等背景不能发生移动。判断视频中前景和背景的方法主要有两种:帧差法、混合高斯模型。

2023-07-27 08:32:08 730

原创 opencv(51) 视频处理之一:视频的读取、捕捉、保存、显示

每一个视频文件本质上都是一个容器,文件的扩展名只是表示容器格式(例如avimov,或者mkv)而不是视频和音频的压缩格式。容器里可能会有很多元素,例如视频流,音频流和一些字幕流等等。这些流的储存方式是由每一个流对应的编解码器(codec)决定的。通常来说,视频流很可能使用mp3或aac格式来储存。而视频格式就更多些,通常是XVIDDIVXH264或LAGS)等等。具体你能够使用的编码器种类可以在操作系统的编解码器列表里找到。视频文件确实比图像文件要复杂很多。

2023-07-27 08:19:20 792

原创 opencv(50) 使用二维特征点(Features2D)和单映射(Homography)寻找已知物体

考虑 同一个平面(比如书皮)的两张图片,红点表示同一个物理坐标点在两张图片上的各自位置。在 CV 术语中,我们称之为对应点。Homography 就是将一张图像上的点映射到另一张图像上对应点的3x3变换矩阵。对于图中的一对儿对应点,位于图一的和 位于图二的H把二者映射关系建立起来:对于所有的对应点,只要它们都位于同一个物理平面上,上述 Homography 就是成立的。换句话说,就是可以把图一中书皮上的所有点都映射到图二的书皮上,也就是看起来,图一中的书皮和图二中的书皮对齐了!

2023-07-27 08:00:04 480

原创 opencv(49) 随机采样一致算法(RANSAC)算法

RANSAC(RANdom SAmple Consensus,随机一致)算法是从一组含有“外点”(outliers)的数据中正确估计数学模型参数的迭代算法。“外点”一般指的的数据中的噪声,比如说匹配中的误匹配和估计曲线中的离群点。所以,RANSAC也是一种“外点”检测算法。RANSAC是一个非确定性算法,在某种意义上说,它会产生一个在一定概率下合理的结果,其允许使用更多次的迭代来使其概率增加。

2023-07-27 07:45:42 143

原创 opencv(48) cv2.feature2d模块应用实例

xfeature2d模块是contrib中对于feature2d模块的扩展,该模块用于2D特征检测,描述与匹配。其中包含的功能受专利保护或功能较新用于测试。由于feature2d模块主要用途是特征点检测,而特征点匹配也与之密切相关,因此匹配器也一并介绍。

2023-07-27 07:06:49 947

原创 opencv(47) cv2.feature2d模块:SIFT中LoG和DoG比较

在实际计算时,三种方法计算的金字塔组数noctaves,尺度空间坐标σ,以及每组金字塔内的层数S是一样的。同时,假设图像为640*480的标准图像。金字塔层数:其中,对于分辨率为640*480的图像N=5。每组金字塔内图像数:S=3,即在做极值检测时使用金子塔内中间3张图像。对于LoG每组金字塔内有S+2张图像(S=-1,0,1,2,3),需要做S+1次高斯模糊操作(后一张图像由前一张做高斯模糊得到);而DoG每组金字塔有S+3张高斯图像,得到S+2张DoG图像。

2023-07-27 07:06:16 46

原创 opencv(46) cv2.feature2d模块之特征点检测Step4:特征向量生成(关键点描述)

由第45节,为找到的关键点即SIFT特征点赋了值,包含位置、尺度和方向的信息。接下来的步骤是关键点描述,即。用来作为 目标匹配的依据(所以描述子应该有较高的独特性,以保证匹配率),也可使关键点具有更多的不变特性,如光照变化、3D视点变化等。SIFT描述子h(x,y,θ)是对关键点附近邻域内高斯图像梯度统计的结果,是一个三维矩阵,但通常用一个矢量来表示。矢量通过对三维矩阵按一定规律排列得到。

2023-07-26 08:18:14 68 1

原创 opencv(45) cv2.feature2d模块之特征点检测Step3:特征点方向赋值

由第44节,我们已经找到了关键点。为了实现图像旋转不变性,需要根据检测到的关键点局部图像结构为特征点方向赋值。

2023-07-26 08:14:01 56

原创 opencv(44) cv2.feature2d模块之特征点检测Step2:关键特征点定位

由第33节,我们得到了DoG高斯差分金字塔:如上图的金字塔,高斯尺度空间金字塔中每组有五层不同尺度图像,相邻两层相减得到四层DoG结果。关键点搜索就在这四层DoG图像上寻找局部极值点。

2023-07-26 08:09:30 120

原创 opencv(43) cv2.feature2d模块之特征点检测Step1:DOG尺度空间构造

是用于领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。该方法于1999年由[2]首先发表于计算机视觉国际会议(International Conference on Computer Vision,),2004年再次经David Lowe整理完善后发表于International journal of computer vision(截止2014年8月,该论文单篇被引次数达25000余次。特征点检测的过程需要如下四步。

2023-07-26 08:03:24 124

原创 opencv(42) cv2.feature2d模块之一:角点检测

或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。角点检测(Corner Detection)是系统中获取图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维重建和目标识别等,也可称为特征点检测。

2023-07-26 07:37:25 630

空空如也

空空如也

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

TA关注的人

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