![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
智能算法
隔壁王同学啊
BIO
展开
-
金麟岂是池中物:逻辑斯蒂回归算法及实现
金麟岂是池中物,一遇风云便化龙 逻辑斯蒂回归是很常见的的算法模型,见下图: 而对于Mnist数据集,我们是使用多项逻辑斯蒂回归,具体公式见下图: 而在具体的使用过程中,我们通常是用softmax回归,如下图所示:而损失函数如下,我们要做的就是尽可能让损失函数变小 对于损失函数的优化,我们用梯度下降法,进行迭代。算法实现如下:...原创 2021-06-20 10:52:32 · 484 阅读 · 1 评论 -
欲与天公试比高:决策树算法及实现
恭贺我国神舟十二号载人飞船成功发射!数风流人物,还看今朝!!!emsp;老规矩,决策树的数学推导部分再次不在赘述,因为决策树是一种非常直观的算法。其中需要注意的地方是特征选择,涉及到了信息增益。算法的描述如下图: 但是在具体的实现过程中是有一内内难度的。关键是在于数据集的处理,我们仍用Mnist数据集的话,它有28*28=784个特征,但是选择一个特征后,我们如何对数据进行划分?比如选择了第一个特征,此特征下的数据取值为0~255,那我们如何划分?二分?还是三分?四分?或者第一个特征二分,第二.原创 2021-06-18 21:10:37 · 183 阅读 · 0 评论 -
毕竟眉湖六月中:朴素贝叶斯算法及实现
毕竟眉湖六月中,风光不与四时同。 图书馆路上随手拍的正文: 我们都对贝叶斯理论了解一二,但啥是朴素贝叶斯?何谓朴素?见下图: 以下是朴素贝叶斯算法的流程: 但在实际的运用中,我们使用的数据集有可能是偏倚的或者数据集包含的实例较少。简单的来说,当我们通过掷筛子来统计每个点数的频率来判断这个骰子是否被动过手脚。当我们测试了六次,发现三点出现频率为0,那么就说这个骰子被动了手脚,显然这是不准确的,这就需要我们在掷筛子前,令所有点数出现的频率不为0,来避免此种状况的出现。 在朴素贝叶斯原创 2021-06-06 23:46:09 · 271 阅读 · 5 评论 -
月落星稀天欲明:k邻近算法及实现
月落星稀天欲明,孤灯未灭梦难成。 失眠怎么办?当然是码代码喽!本次实现的是k邻近算法,先来个基础版本的,数据集还是Mnist,具体算法的数学描述,直接搬运《统计学习方法》的相关章节(主要是欧氏距离和投票表决)如下:import numpy as npdef output_label(data_train,input,k): data_input=np.tile(input,(data_train.shape[0],1)) data_dis=data_input-data_train原创 2021-06-01 10:04:06 · 115 阅读 · 0 评论 -
雨送黄昏花已落:感知机算法及实现
湛湛眉湖去,冥冥细雨来。 感知机是二类分类模型,属于判别模型。其主要是求出将训练数据进行线性划分的分离超平面。方法是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。具体的数学推导过程,可以参考《统计学习方法》一书,这里不再赘述。下面是基于上次手写数字的Mnist数据集的感知机算法代码。import numpy as npclass perceptron: def __init__(self,train,test,train_label,test_label,lear原创 2021-05-28 09:57:45 · 72 阅读 · 0 评论 -
偷得浮生半日闲:手写数字的识别
本次我们利用拟利用三层神经网络来识别手写数字,利用http://pjreddie.com/projects/mnist-in-csv/提供的训练数字和测试数字,来进行网络的训练。隐藏层设置为100个节点,学习率设置为0.3,并将全部数据集训练5次。最终得到正确率为import numpyimport scipy.specialclass network: def __init__(self,input_nodes,hidden_nodes,output_nodes,learn):原创 2021-05-21 10:38:40 · 599 阅读 · 0 评论 -
偷得浮生半日闲:三层神经网络的python实现
在做毕设的时候,忙里偷闲,结合之前文章中的神经网络的入门推导,用python实现了三层神经网络,本次的代码构建了一个神经网络的类。import numpyimport scipy.specialclass network: def __init__(self,input_nodes,hidden_nodes,output_nodes,learn): self.inodes=input_nodes self.hnodes=hidden_nodes原创 2021-05-18 11:09:42 · 239 阅读 · 0 评论 -
基本的pso算法
PSO算法中的微粒飞行规则类似于鸟类的运动,从而使得整个微粒群的运动表现出与鸟类觅食类似的特性,进而用于求解复杂的优化问题,该算法的基本思想是通过群体中之间的协作和信息共享来寻找最优解。基本流程:初始化种群和速度—>计算适应度值—>找到个体的极值和种群的极值——>速度更新和个体更新—>计算适应度值—>更新个体极值和种群的极值—>判断是否满足终止条件(如果是否...原创 2019-09-04 20:16:42 · 788 阅读 · 0 评论 -
智能优化算法之模拟退火算法
详细的代码解释及背景,过几天再进行补充%模拟退火算法%问题背景是tsp问题,有100个旅游景点。并且假设距离矩阵d已经给出。%d已知sum=inf;for j=1:1000 S=[1,1+randperm(100),102]; temp=0; for i=1:101; temp=temp+d(S(i),S(i+1)); en...原创 2019-09-02 20:59:54 · 278 阅读 · 0 评论 -
改良圈算法(matlab+算法过程实例)
改良圈算法的目的是得到一个较好的初始解。在遗传算法中就应用到了该算法。首先,本文介绍改良圈的背景是TSP问题(旅行商问题),可参加《数学建模算法与应用》。改良圈算法是基于最邻近算法的。比如,我们地图上有1,2,3,4这四个点,我们首选初始路径不妨为1->2->3->4。假设他们的权值矩阵是w,则初始路径的距离总和为w12+w23+w34,我们如果想要走最短的路径,可以让计...原创 2019-08-13 10:19:02 · 6070 阅读 · 5 评论 -
轮盘赌算法以及matlab的实现
轮盘赌算法其实是一种选择算法。原理其实很简单,通常运用于遗传算法与蚁群退火算法等。如遗传算法中的个体的选择。总之,用处很大。下面介绍,轮盘赌的基本原理。运用的情景:一个公司进行考核淘汰员工,有员工四位,其为公司创造的价值分别是900,200,80,100.公司老板突发奇想不想进行末位淘汰,而是想要产生随机数进行统计,通过产生1000次的随机数,来看看,那位员工被淘汰。首先,我们应知道个体的...原创 2019-08-07 21:02:44 · 8484 阅读 · 3 评论 -
遗传算法及其matlab实现
遗传算法,模拟达尔文的自然选择和遗传学的机理的生物进化的计算模型。其实,遗传算法用到生物学的知识不多,一些中学的生物知识就足以应付。 其实,接触遗传算法是有一种熟悉的感觉。因为假期涉猎了机器学习,其中接触的第一个相关的算法就是梯度下降算法。(有关这个算法,以后再记录),这个算法的作用就是通过求偏导,使梯度不断下降,最终达到了一个局部的最优解。但是问题来了,在很多工业生产实践中,通常是不可微...原创 2019-08-09 15:33:11 · 879 阅读 · 0 评论