模式识别算法
再__努力1点
梦想还是要有的,万一实现了呢?!
展开
-
决策树分类器+C代码
关于决策树的理解和计算过程,http://www.tuicool.com/articles/3EZJBz 这篇文章上有很详细的介绍。就我完成决策树代码的一些步骤进行介绍:1. 获取样本,计算样本的增益值,选择增益值最大的作为下一步分支的根节点;2. 将被选中的样本属性删除(我这里是将该属性列的值设置为99,即认为删除);3. 对被选中的属性列中的子属性进行分类:如:在本例代码中,原创 2015-07-29 10:01:45 · 13806 阅读 · 1 评论 -
Jacobi迭代求矩阵特征值和特征向量+C代码
Jacobi计算过程如下:1. 选择矩阵A非对角元中最大值A[i][j],运用公式 tan 2O = 2*A[i][j] / (A[i][i] -A[j][j]) 获得选择平面矩阵J,使J * A *J' = A12. 计算得到A1后,重复第1歩,计算A2 =J2 * A1 * J2' ,连续这个过程,直到非对角线元素全化为充分小,得到特征值矩阵Am。3. 特征向量的计算为原创 2015-09-04 13:49:41 · 15788 阅读 · 7 评论 -
高斯—赛德尔求解线性方程+C代码
高斯—赛德尔迭代求矩阵特征值公式如下:举例:实现代码:#include "stdio.h"#include "stdlib.h"#include "math.h"#define N 3 #define MAXITER 10000 void main(){int i, j, k;int iter =原创 2015-09-03 22:21:23 · 1308 阅读 · 0 评论 -
模糊神经网络+c代码
模糊神经网络的计算步骤如下:测试数据如下:(胃病和非胃病)输入X:228 134 20 11245 134 10 40200 167 12 27170 150 7 8100 167 20 14150 117 7 6120 133 10 26160 100 5 10185 115 5 19170 125 6 4165 142 5 318原创 2015-08-27 11:27:57 · 5124 阅读 · 7 评论 -
列选主元Guass消元法求解方程组+c语言
学习过数分的都知道,列选主元Guass消元法求解方程组的求解步骤和过程:首先选择需消元的列的最大值,进行交换,然后对当前列进行消元;消元完成后进行回代求解方程组的解。实现代码如下:#include "stdio.h"#include "math.h"#include "stdlib.h"#define N 4#define M 5int getMax原创 2015-09-09 16:36:46 · 5787 阅读 · 0 评论 -
模糊C均值聚类(FCM)算法(IOSDATA)+ c语言代码
本代码算法用例为鸢尾花数据集合;IOSDATA算法实现步骤,在很多资料和论坛中都有详细的介绍,这里就不对算法步骤进行陈述了。就我代码中,我对下面几个控制参数的理解:初始聚类数:初始类聚中心,跟聚类聚中心划分簇。期望得到的聚类数:这个数并不是最终得到的类聚数目,可以理解为我们人为的预估可能得到的类聚数,最后的结果不一定与这个数相等。最大迭代次数:控制程序的迭代次数,根据样本数量大原创 2015-07-24 15:08:27 · 4393 阅读 · 4 评论 -
线性不等式组的旋转算法
线性方程组的旋转算法,参考:《凸规划——投资组合与网格优化的旋转算法》 张中桢著线性不等式组,基本概念:线性方程组的旋转算法步骤:具体计算如下:选择入基和出基向量的规则;一个线性规划的例子:当偏差全为非负数是,结束迭代计算最优解,结果如下:原创 2015-09-14 15:42:34 · 1542 阅读 · 0 评论 -
一般线性规划求最大值
一般线性规划求最大值,算法过程和步骤与一般线性规划求最小值的步骤刚好相反:下面介绍一般线性规划求最大值的的一些计算原理和算法步骤:原创 2015-09-16 15:54:16 · 14693 阅读 · 0 评论 -
凸二次规划的解法(x取值具有上确界)
凸二次规划的解法(x取值具有上确界)原创 2015-09-16 16:45:54 · 1275 阅读 · 0 评论 -
一般线性规划求最小值+c语言
求最小值的线性规划,任然需要旋转算法。对于如下的线性函数,求最优解:原创 2015-09-16 15:18:11 · 5735 阅读 · 1 评论 -
凸二次规划的解法(旋转算法)
上篇博客中有旋转算法计算步骤和例子:点击打开链接凸二次规划的解法(旋转算法)——变量无上确界凸二次规划形式:库恩—塔克条件:初始表数据形式:凸二次规划解法步骤:二次规划的例子:原创 2015-09-14 15:47:38 · 4140 阅读 · 0 评论 -
某点处的导函数值+c语言
求导是数学计算中的一个计算方法,导数定义为:当自变量的增量趋于零时,因变量的增量与自变量的增量之商的极限。计算方法:① 求函数的增量Δy=f(x0+Δx)-f(x0)② 求平均变化率③ 取极限,得导数。c语言代码:#include "stdio.h"#include "math.h"#define MAXITER 1000原创 2015-09-08 22:14:53 · 2402 阅读 · 0 评论 -
凸二次规划解法(旋转法)——补充代码
根据之前的两篇博客,理解了凸二次规划解法(旋转法)的计算过程和步骤后,根据自己手算的计算过程和步骤,用机器表示。C语言代码的步骤和课文上的步骤是一样:C语言凸二次规划的计算结果如下:(例子为上篇博客的例子)原创 2015-09-14 16:24:12 · 2485 阅读 · 0 评论 -
牛顿法及其下山法+C代码
引用数值分析原文的内容,可以很快的编出牛顿法的代码。牛顿法其原理如下:从上面理论可以看出,牛顿法就是不断寻找新的点 x(k+1)来逼近目标值,其寻找方法是不断对曲线做切线,并计算“前进”距离:f'(x)=tan( f(x(k)) / (x(k) - x(k+1)))。下面以书本的例子,编写相应的代码:下山法是为防止迭代发散而额外加的条件。原创 2016-09-23 21:34:20 · 11585 阅读 · 1 评论 -
列文伯格算法(LM算法)理解、使用及实现
第一部分 levmar的安装与使用 Levenberg-Marquardt算法是求解非线性问题的一个非常好用的算法。该算法属于信赖域算法的一种,关于信赖域算法的解释可以参考这一博主的解释:关于信赖域算法理解,个人感觉很好。 Levenberg-Marquardt算法是一个开源的算法,其文件下载地址如下:http://www.netlib.org/clapack/C原创 2016-09-23 23:05:08 · 41877 阅读 · 19 评论 -
核主成分分析KPCA+C代码
KPCA用非线性变换将输入数据空间映射到高维空间,使非线性问题转为线性问题,然后在高维空间中使用PCA方法提取主成分,在保持原数据信息量的基础上达到降维的目的。常用的核函数有以下几种:核函数化后的得到m*m的样本矩阵(m为样本个数)。用核函数将原始样本投射到高维空间,再用PCA进行降维。实现步骤:1. 将数据进行核函数化;2. 之后用PCA进行降维,我上篇博客有原创 2015-09-05 10:40:00 · 4842 阅读 · 4 评论 -
主成分分析PCA+C代码
主成分分析(PCA)的中心思想是将数据降维,以排除信息中重叠的部分;它将原变量数据进行变换,使少数几个新变量是原变量的线性组合,同时,这些变量要尽可能多的表征原变量的数据结构而不丢失信息。主成分分析的基本思想是:在一维空间的这条线必须包含原数据的最大方差。更准确的说,沿着这条线,使方差达到最大;其他方向,使方差达到最小。一些PCA资料:1. 点击打开链接2. 点击打开链接原创 2015-09-04 19:43:32 · 8150 阅读 · 7 评论 -
模糊综合评判+C代码
例:对某件衣服的评判,评判因素有:色彩u1、做工u2、面料u3、款式u4;它构成论域U={u1, u2, u3, u4}。仅色彩讲,假设70%评委认为是“好”、20%为较好、5%为较差、5%为差则色彩评价为: r1 = {0.7, 0.2, 0.05, 0.05};同理:r2 = {0.5,0.1,0.2, 0.2}; r3 = {0.6, 0.2, 0.1, 0.1};原创 2015-08-27 11:42:37 · 2447 阅读 · 0 评论 -
K-Mean聚类算法+C语言代码
K-Mean聚类算法+C语言代码:实现步骤:1. 确定分的簇数K;2. 随机选择K个簇作为数据的计算中心,即随机选取质心;3. 用欧式距离计算每组数据到中心的距离,将距离最短的对应纳入对应簇 Crowd[lable];4. 计算各组簇到该簇中心的欧式距离和 Var;5. oldVar 与 newVar 进行比较,若abs(oldVar - newVar)6. 更新质心,原创 2015-07-23 12:35:31 · 1935 阅读 · 1 评论 -
Fisher线性判别函数+c代码
Fisher线性判别是将d维空间样本压缩到一条直线上,形成一维线性空间。最终将待测样本与压缩后形成的一维空间进行投影,根据最终的投影点判断样本属于哪一类。本代码主要是针对两类问题的Fisher法,步骤和原理很多资料和博客都有,这里就不给出,直接上代码了:#include "stdio.h"#include "stdlib.h"#include "math.h"#include原创 2015-07-27 13:24:08 · 2063 阅读 · 1 评论 -
感知器算法+C代码
感知算法的训练过程就是对判断好的样本集求解权矢量W,这实际是一个线性联立不等式的求解问题。具体算法如下:1. 初始权矢量 W = 0;2. 第k次输入一个样本X(K), 计算第k次迭代的过为: d[X(k)] =W'[k] * X(k),3. 根据欲划分类和d值进行权值修正: 当dW[k+1] = W[k] +X[k]; 当d>0时:原创 2015-07-29 21:50:35 · 1083 阅读 · 0 评论 -
模糊推理(T-S系统)——补充
接上篇博客//农业生产的经济指标,等级划分标准:/*********************************************///等级 高 中 低 *///亩产 2000以上 1500~2000 1500以下 *///费用 7以上 4~7 4以下 *///用工 50以上 25~50 25以下 *///收入原创 2015-08-25 14:36:44 · 3095 阅读 · 0 评论 -
模糊推理(T-S系统)+C代码
一个模糊推理(T-S型系统)例子,如下:代码的例子如下://制定推理规则://阀门的打开度数在[0, 90]//定义:// 关闭:0 开小:0~30 开中:30~60 开大:60~90//R1:温度低,则关闭冷气阀门 if T is f1, then Y=0; Y表示:温度高低对应需要打开的度数//R2:温度较低,则开原创 2015-08-24 22:23:46 · 3793 阅读 · 0 评论 -
最小二乘法曲线拟合+C代码
最小二乘法曲线的系数求解过程是解一个正规方程组的解的过程,下图是数值分析课本上,最小二乘法拟合的原理:课本中的例子如下:c代码如下:#include "stdio.h"#include "stdlib.h"#include "math.h"#include "vector"using namespace std;struct原创 2015-07-30 21:54:54 · 11670 阅读 · 1 评论 -
曲线拐点快速寻找算法+C代码
定理 : 记关于平面上两点 P1(x1 ,y1) 和 P2(x2 ,y2)的正向直线方程L的左端表达式为函数 S12 (x , y)= (x2-x1)(y-y1) + (y1-y2)(x-x1) 对于不在直线L上的任何一点 P0 (x0,y0 ) ,有 (1) 如果 S12 (x0,y0) (2) 如果 S12 (x0,y0) >0 , 则 P0 (x0,y0原创 2015-07-30 16:33:41 · 19632 阅读 · 3 评论 -
Hopfield神经网络+C代码
Hopfield是一个具有记忆功能的神经网络;通过网络转态的不断变化,最后转态会稳定下来,最终的状态是与待测样本向量X最接近的训练样本。所以Hopfield网络的最终输出就是待测样本向量联想结果。Hopfield网络学习算法如下:1. 确定权重系数,计算公式如下:2. 对待测样本进行分类,对二值神经元,计算Hopfield网络输出:可选用的阶跃函数为:原创 2015-08-22 16:31:49 · 3490 阅读 · 0 评论 -
BP神经网络+c代码
BP神经网络的设计应注意以下几个问题:1. 网络的层数。一般三层网络结构就可以逼近任何有理函数。增加网络层数虽然可以提高计算精度,减少误差,但也使得网络复杂化,增加网络训练时间。如果实在想增加层数,应优先增加隐含层的神经数。2. 隐含层的神经单元数。网络训练精度的提高,可以通过采用一个隐含层而增加神经元数的方法获得。具体设计上可以使隐含层是输入层的2倍,然后再适当增加一点余量。3.原创 2015-07-31 11:18:18 · 3706 阅读 · 1 评论 -
模糊识别的聚类分析+C代码
1. 模糊识别的聚类分析的实现步骤:2. 模糊矩阵计算的一些知识:2.1 内积和外积的计算:2.1.1 内积计算:2.1.2 外积计算:2.2 截集计算2.3 传递闭包矩阵 t(R)的计算方法如下:3. 系数矩阵R的计算方法有很多,如:数量积法:原创 2015-08-23 13:06:27 · 1551 阅读 · 0 评论 -
Fisher最优分割法+c代码
Fisher最优分割法原理:1.定义类的直径 2.定义分类法的损失函数为 :3.费希尔算法的递推公式:Fisher最优分割法的聚类步骤 (如下图):c语言代码如下(因为测试用例的曲线拐点并不好计算,所以我直接通过观察确定曲线的拐点,从而得出需要分的类数为4):#include "stdio.h"#include原创 2015-07-31 10:08:50 · 8304 阅读 · 2 评论 -
模糊识别的择近原则+c代码
常用的贴近度函数有:C代码如下:#include "stdio.h"#include "math.h"#define row 5#define col 6#define max(a, b) (a>b?a:b)#define min(a, b) (avoid main(){int i, j;int n, laber;原创 2015-08-26 22:51:13 · 838 阅读 · 0 评论 -
基于模糊特征的文字识别+实现代码
基于模糊特征的文字识别实习原理如下:代码如下:(在OPENCV环境下编写)#pragma comment(lib, "opencv_imgproc220d.lib") #pragma comment(lib, "opencv_highgui231d.lib") #pragma comment(lib, "opencv_core231d.lib") #i原创 2015-08-26 22:30:32 · 2587 阅读 · 0 评论 -
CPN神经网络学习
CPN神经网络的一些资料:http://wenku.baidu.com/link?url=JIhrQ5tpegz_KfBEV6TT9nPL6SYBq-Msc8GzHJYgAi2rM462hTZy2QU4G7qUQYXlOdVxxHKn-FRKS5Ok9Jkc02gM2B72ySRrf9SM-mqZrT7CPN神经网络设计步骤如下:C代码如下:(本代码按照步骤完成,同时也对照原创 2015-08-05 16:54:45 · 2822 阅读 · 0 评论 -
Tensorflow、CUDA与cudnn 的版本对应关系
最近在玩深度学习,需要安装tensorflow_gpu,开始安装cuda10+tensoflow_gup==1.13.0,但是失败了,后来查资料才知道tensorflow目前还没有支持到cuda 10。特此记录下:版本对应查阅地址:https://tensorflow.google.cn/install/pip?lang=python3linux下的版本对应关系:windo...原创 2019-04-23 09:52:57 · 2880 阅读 · 0 评论