秋刀鱼程序编程
目前从事Qt软件、DSP开发、算法、机器学习研究,主要的算法研究有差分进化算法、遗传算法、神经网络,会c、c++、Qt、matlab,python,java,有需要的编程问题咨询的私信或者加我qq:974268591!
展开
-
matlab编写BP神经网络原理代码----不采用BP神经网络的包
BP神经网络是一种前反馈的误差逆传播算法,多层网络的学习能力比单层感知机强很多,BP算法不仅可用于多层前反馈神经网络,还可以应用于其它类型的神经网络。至于BP神经网络的理解,可以参考周志华的《机器学习》,原理这里不再阐述。以下是BP神经网络的matlab代码,它不是采用BP学习的matlab包,而是从BP神经网络的原理编写的,能让大家更加理解BP神经网络原理!在文章底部,有该算法的源代码,自行下载!%%BP神经网络---误差逆传播算法%%算法流程:%(1)初始化权重、学习率、神经元个数、阈值、训原创 2021-07-29 11:09:37 · 764 阅读 · 4 评论 -
智能算法--基于差分进化算法(DE)的神经网络优化UCI数据集
随着人工智能的快速发展,衍生出众多的算法,其中智能算法在其中发挥着重要的作用,不断的指引着大家前进学习。对于智能算法我们也可以称其中一部分为演化算法(每个个体可以自发的运动演化发展,找到最优结果),对于演化算法需要注意两个概念,也就是个体、种群,整个演化算法都模拟种群演化一样,不断的朝着最优生长区域前进。遗传算法、粒子群算法、差分进化算法、分布式估计算法、蚁群算法、免疫算法等。而这里采用差分进化算法结合神经网络,以此代替传统的Bp神经网络结构,采用种群演化的思想来搭建神经网络结构。原创 2023-10-24 22:18:39 · 262 阅读 · 0 评论 -
Matlab:神经网络实现手写数字识别
从此可见神经网络模型的比较简单,实际上这里的参数涉及的比较多,其维度也比较大。其中属于激活函数,是权值矩阵,为输入的数据集,是阈值矩阵。原创 2023-05-27 13:59:22 · 1785 阅读 · 1 评论 -
python:KNN改进约会网站的配对效果
是一种基于的统计概率模式,原理就是通过计算测试点与训练集之间的距离。通过计算测试点与所有的训练集之间的距离之后,给定k值,选取最小的数据。然后,统计前k个中数据集的每种类别占比率,占比率高的则为测试点的预测结果。原创 2023-03-05 15:54:24 · 318 阅读 · 0 评论 -
Mtalab:二元参数采样的MH算法
对于样本参数估计中,提供了很多比较不错的方法,其中就有MH算法。而面对多元时,MH算法的步骤是有变化的。针对多元MH算法估计参数,这里介绍Componentwise Metropolis-Hastings采样。6. 随机产生一个均匀分布数u,判断其与转移概率的比较,更新估计参数。8. 随机产生一个均匀分布数u,判断其与转移概率的比较,更新估计参数。,需要计算他的转移概率,而此时的转移概率是基于 估计参数。如果产生的随机数小于转移概率,估计参数。如果产生的随机数小于转移概率,估计参数。1.初始化迭代t=1;原创 2022-10-20 15:34:26 · 1047 阅读 · 0 评论 -
matlab差分进化算法优化神经网络权值、阈值参数
在传统的前馈神经网络中,权值和阈值的优化采用的梯度下降的方法进行优化的。在优化过程中发现,梯度下降在迭代次数比较多的情况下,收敛速度慢,预测精度低的行为。差分进化算法在优化线性和非线性是比较不错的算法,收敛速度快,精度高。它对于处理线性和非线性的问题恰好可以引入优化神经网络参数中来。我们知道,前馈神经网络是以误差函数作为梯度函数进行下降而找到最优的权值和阈值。这里可以利用差分进化算法的良好优化性能,以误差函数作为我们的适应度函数,以权值、阈值作为我们的变量。因此则可以将其看待为优化多维单目标优化,这样原创 2022-01-18 19:34:48 · 1566 阅读 · 0 评论 -
MATLAB:基于粒子群算法的TSP路径优化
粒子群算法(PSO)是基于当前位置与飞行速度而形成的进化算法之一,其中涉及到个体最优值与全局最优值。粒子群算法的步骤如下:步骤1:初始化种群位置、飞行速度步骤2:设置个体最优值与全局最优值步骤3:更新飞行速度步骤4:更新位置步骤5:根据当前的位置与全局最优值进行比较,保存全局最优值而对于粒子群算法如何解决TSP问题,我们得了解TSP问题。TSP问题就是,不重复走一条路,一次性走完全部城市,并且所用的总路程最短。因此,把总的路径函数作为适应度函数,运用粒子群算法优化路径函数,使其达到最小时,则此时所原创 2022-06-29 21:37:28 · 1147 阅读 · 0 评论 -
matlab:KNN实现手写数字识别
KNN算法是一种基于概率的距离算法,简单的来说就是靠近算法。首先对给出的训练集和测试集进行特征提取,计算测试集与训练集的特征欧式距离,也就是所谓的二范数。计算测试集与训练集之间的距离之后,则对测试集与训练集之间的距离进行排序,然后确定k值。选取排序后的前k个值,选择其中出现类别最多的作为测试集的预测类别。一、KNN算法原理(1)采集数据样本–训练集(2)输入测试数据集T(3)计算T与训练集的每一数据之间的距离(4)计算前k个点所在类别的出现频率(5)返回前k个点出现频率最高的类别原创 2022-05-18 19:51:49 · 1840 阅读 · 0 评论 -
python: 感知机学习算法----对偶形式
‘’’感知机学习算法----对偶形式输入:线性可分的数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi属于R^n,yi属于{-1,+1},i,2,…,N;学习率h(0<h<=1)输出:a,b;感知机模型f(x)(1)初始a,b=0(2)在训练集中选取数据(xi,yi)(3)如果yi(sum(ajyjxjxi)+b)<=0ai=ai+hb=b+hyi(4)转至(2)直到没有误分类数据数据集:统计学方法–李航–P45‘’’程序如下:import原创 2022-05-09 21:06:48 · 682 阅读 · 0 评论 -
matlab:径向神经网络实现函数逼近
在实际应用中如何根据数据拟合是研究的重点。这里提供函数newrb进行预测拟合函数样本点,而径向神经网络需要更多的隐含层来完成,所以在使用的过程中需要注意!下面给出利用函数newrb实现函数逼近!%% 径向基神经网络,实现函数逼近%编写时间:2022.4.11clcclear %% 采集数据x=0:0.1:2; %神经网络输入值---带拟合的x自变量范围T=cos(x*pi); %神经网络目标值%% 绘出此函数上的采样点figure(1)plot(x,原创 2022-04-11 17:05:27 · 1442 阅读 · 0 评论 -
matlab:线性支持向量机的实现--以李航统计学方法中第七章例7为例
支持向量机在线性分类和非线性分类当中应用广泛,支持向量机是采用最大间隔法的形式来的。在面对线性问题时,通常可以采用二次规划就可以求解最优参数。当面临非线性问题时,则需要采用核函数对其处理。这里提供线性支持向量机的形式用于分类测试。数据集采用李航统计学方法中的第七章例7.1.具体代码为:%% 线性支持向量机----采用二次规划求解---不带核函数clcclearclose all %% 导数数据集train_data=[3 4 1 ;3 3 1 ];train_label=[1 1 -原创 2022-04-11 16:43:18 · 1304 阅读 · 0 评论 -
python:线性回归的反向传播
线性回归模型是经常在机器学习、深度学习当中需要采用的一个简单模型,能够对一些简单的类别判断给出一个线性平面将其分类!他也是支持向量机、感知机、神经网络的基础支撑,对反向传播算法的掌握,有利于后期的机器学习和深度学习。################线性回归的反传播代码#######################import torchimport random# 定义网络模型class LinearNet(): #初始化权值w,阈值b def __init__(self):原创 2022-04-09 21:49:19 · 1620 阅读 · 0 评论 -
Matlab:决策树的信息增益算法的实现
该代码实现了决策树中的信息增益算法,数据集采用李航的统计学方法中第五章第71页的例子。原创 2022-04-05 16:36:29 · 1664 阅读 · 0 评论 -
Matlab实现朴素贝叶斯分类
朴素贝叶斯(naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。这里测试集采用李航的统计学方法一书中对应的案列。具体代码如下:%% 朴素贝叶斯算法%%%%%%%%%%%%%%%%%%%%%%%%输入:训练数据集%输出:实列x的分类% 1. 计算先验概率及条件概率%原创 2022-04-03 12:03:19 · 2966 阅读 · 0 评论 -
python实现感知机学习算法原理
‘’’一、感知机(perceptron)的学习:什么是感知机:是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1;模型类型:感知机将对应的输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型;感知机模型:感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对顺势函数进行极小化,求得感知机模型。二、算法步骤: 1.选取初值w0,b0.确定学习率(属于(0,1]) 2.在训练集中选取数据(xi,yi原创 2022-03-31 16:42:58 · 1535 阅读 · 0 评论 -
Matlab:感知机学习算法的对偶形式原理及实现
一、原理介绍对偶形式是一种比较常见的处理方式,这在今后的支持向量机中广泛采用。对于感知机的对偶形式的基本思想是,将和b表示为实例和标记的线性组合的形式,通过求解其系数进而求得和。在感知机的原始形式当中,假设设初始值均为0.对误分类点通过通过不断的修改和b,假设修改n次,则关于的增量分别是和,这里的。这样下来,最后经过学习后的和b的分别表示为: 这里的,通过以上可以建立感知机的对偶形式:其中,它是对偶形式的参数...原创 2022-03-27 17:05:16 · 1109 阅读 · 0 评论 -
matlab:神经网络分类预测鸢尾花(iris)
基于matlab下的神经网络预测鸢尾花分类原创 2022-03-19 10:37:53 · 2290 阅读 · 0 评论 -
python实现KNN算法在电影分类中的应用
使用python实现KNN算法在电影分类中的应用代码如下:import numpy as npimport operator"""使用KNN算法对电影进行分类KNN算法原理:(1)采集数据样本–训练集(2)输入测试数据集T(3)计算T与训练集的每一数据之间的距离(4)计算前k个点所在类别的出现频率(5)返回前k个点出现频率最高的类别作为T的预测分类编写时间:2021.12.19编写者:G-king"""def createDataSet(): group = np.a原创 2021-12-19 21:25:34 · 1443 阅读 · 0 评论 -
matlab神经网络包处理Iris分类预测
神经网络包处理Iris分类预测工作,这里以matlab为编程:%% 此程序matlab编程实现的BP神经网络-----该程序采用神经网络包来做的% 清空环境变量clcclear close all%%第一步 读取数据%%第一步 读取数据load('iris.mat');input=iris(:,1:4);output=iris(:,end);%data=xlsread('324个异常平均值.xlsx');% data1=xlsread('324个正常平均值(箱型图清洗).xlsx'原创 2021-12-19 17:03:43 · 1394 阅读 · 0 评论 -
matlab实现KNN算法应用---约会网站配对效果
KNN算法是一种距离概率式的统计算法,通过欧氏距离判断待测点与目标点之间的欧氏距离,通过欧氏距离的远近判断前k个中属于不同类别的个数,个数最多的则为待测点的类别。原创 2021-12-13 14:06:45 · 1365 阅读 · 0 评论 -
matlab感知机模型分类
感知机模型分类,其原理利用误分类的思想寻找出最好的分离超平面,利用训练模型得到的分离超平面去预测测试集的分类,判断分类的精度高不高。对于感知机的训练模型和测试模型,简单原理如下,根据自己需要可以进行修改。%%感知机学习算法---原始形式%%算法步骤:% 1.选取初值w0,b0.确定步长(属于(0,1])% 2.在训练集中选取数据(xi,yi)% 3.如果yi(w*xi+b)<=0,更新w,b% w=w+步长*yi*xi%原创 2021-07-15 10:22:29 · 420 阅读 · 0 评论 -
matlab实现KNN算法---电影分类
matlab实现knn代码:%%%%%%%%%%%%%%%%%%%%%%%%%KNN算法应用%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%数据集来源于机器学习实战(美,Peter Harrington 著;李锐,李鹏等翻译)%%%%%%%%%%%编写时间:2021.12.12%%%%%%%%%编写者:G-kingclcclear%%%%%%%%%导入训练集%%%%%%%%%%%train_data=[3 104;2 100;1 81; 101 1原创 2021-12-12 19:39:34 · 1004 阅读 · 0 评论