机器学习与人工智能
文章平均质量分 58
machine learning
麦克斯韦的妖精
大槐树下一梦醒,人事功名两茫茫。长恨当年花开日,少不更事老来伤。
展开
-
K平均算法
这是前些天机器学习课程的一个小实验。实验原理本实验距离标准采用欧几里得距离。聚类算法采用K平均算法。K平均算法基本思想如下:(1)、任选K个对象作为初始类中心(2)、repeat(3)、计算类中对象的平均值,将每个对象重新赋给最类似的类(4)、更新类的平均值(5)、直到不再发生变化可以想象,如果需要聚类的点是有限的,那么每一步,它们距离各自所对应的最近的平均原创 2016-10-18 23:11:40 · 2514 阅读 · 0 评论 -
Python编程实现预剪枝的CART决策树
前面在Python编程实现基于基尼指数进行划分选择的决策树(CART决策树)算法中实现了基础的不进行剪枝操作的CART决策树,但是在现实情况中决策树很容易出现过拟合的现象。剪枝(pruning)是决策树学习中对付过拟合的一种常用的方法。决策树剪枝的基本策略有预剪枝和后剪枝。本文主要是对预剪枝的实现。预剪枝是指在决策树的生成过程中,对每个结点在划分前后先进行评估,如果当前结点的划分不能带来决策树泛化...原创 2019-09-06 21:33:00 · 3285 阅读 · 5 评论 -
Python编程实现基于基尼指数进行划分选择的决策树(CART决策树)算法
本文是周志华老师的《机器学习》一书中第4章 决策树 的课后题第4.4题的实现。原题是:试编程实现基于基尼指数进行划分选择的决策树算法,为表4.2中的数据生成预剪枝、后剪枝决策树,并与未剪枝决策树进行比较。本文主要是不进行剪枝的CART决策树的实现,预剪枝与后剪枝的CART决策树实现分别可见Python编程实现预剪枝的CART决策树和Python编程实现后剪枝的CART决策树。如果发现文...原创 2019-09-06 21:13:42 · 13667 阅读 · 5 评论 -
Python编程实现基于信息熵进行划分选择的决策树算法
本篇是周志华老师的《机器学习》第4章 决策树 课后题4.3的实现,原题是:试编程实现基于信息熵进行划分选择的决策树算法,并为表4.3中数据生成一颗决策树。这里需要注意的是此数据集中,有的属性是离散的,有的属性是连续的,对于连续的属性,我们可以使用二分法将样本分为两个部分。这个数据集可以从Dataset.py中粘贴:def watermelon3(): """ ...原创 2019-09-05 19:51:56 · 16824 阅读 · 8 评论 -
机器学习(周志华著)习题 第03章 线性模型
3.1 试析在什么情形下式(3.2)中不必考虑偏置项b有网友说可以让所有的数据减去第一个样本,但是在实际应用中这样做偶然性太大。可以先对数据进行“中心化”处理,也就是对每一个x 都减去数据集的均值。3.2 试证明,对于参数,对率回归的目标函数(3.18)是非凸的,但其对数似然函数(3.27)是凸的要想证明(3.18)是非凸的,只需要证明其代表二阶导的Hessian矩阵不是半正定的即...原创 2019-08-30 10:31:52 · 3217 阅读 · 1 评论 -
MATLAB实现规范化(normalize)数据的函数实现
对数据进行规范化和计算K近邻一样经常使用,所以用MATLAB直接实现一个函数保存在博客上,这样每次使用的时候直接从这里复制一份就可以了,所以说博客对于个人来说也是一个移动的笔记,只要在一个有网络的地方就可以查阅。normalize的MATLA函数代码实现如下所示,要求输入三个参数:数据矩阵,规范化后的最小值lowbound和规范化后的最大值upbound。其中数据矩阵要求每一行表示一个多维样本...原创 2018-03-02 17:03:48 · 14113 阅读 · 7 评论 -
MATLAB计算K近邻
在实验中经常会需要计算K近邻,为了避免多次重写,这里用MATLAB实现了一个计算K近邻的函数,该函数要求输入两个参数,第一个参数就是数据矩阵,要求每行为一个多维样本点,第二个参数就是K值了。函数返回K近邻矩阵。计算K近邻比较好的一种算法是利用KD树,这里暂且用的是易于理解的常规方法。使用KD树的代码将来补充。具体代码实现如下function [ Result ] = KNN( Data,k )%...原创 2018-03-02 16:33:38 · 6813 阅读 · 0 评论 -
用BP神经网络逼近正弦函数
上一篇文章中用BP神经网络解决了一个简单的分类问题,接着我又尝试着试验了一下用BP神经网络去逼近正弦函数。网络的结果设计如下图所示。网络中设置输入层与输出层均为一个神经元,并且考虑到正弦函数的值域分布情况,我这一次在输出层中的激活函数并没有使用以前常用的sigmod函数,而是采用了线性函数y = x具体实现代码如下所示clc,clearData = -3:0.01:3;xs...原创 2018-03-09 22:09:03 · 14732 阅读 · 11 评论 -
用BP神经网络解决简单的分类问题
有关于BP神经网络原理前人之述备矣,这里就暂且略过。从一年前第一次接触机器学习到现在,已经学习很多类似的智能学习算法,无论是遗传算法、群算法、模拟退火算法还是神经网络算法,在有监督的学习算法中,无非就是设计一个标准和进化方式,让结果与标准之间的误差越来越少,直到误差缩小到允许的范围内并收敛,我们谓之学习成功了。BP神经网络也是这样的,在BP神经网络学习的目标就是输出层输出的结果与真实值的差距尽...原创 2018-03-09 20:13:21 · 32868 阅读 · 58 评论 -
MATLAB调用C++程序
有时候可能会需要在MATLAB中调用C++程序。调用C++代码需要用到mex。下面介绍一下使用的方法。环境配置MATLAB中的环境配置这里我用的MATLAB版本为2014a。必须要对MATLAB的编译应用程序mex和mbuild进行正确的设置。先对MATLAB编译应用程序mex的设置:在MATLAB命令行中输入mex –setup ,输入之后回车,会询问选择语言,此时直接用原创 2018-01-15 19:12:17 · 24915 阅读 · 1 评论 -
A*算法解决八数码问题 Java语言实现
本文转自:http://www.cnblogs.com/beilin/p/5981483.html0X00 定义 首先要明确一下什么是A*算法和八数码问题? A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法也是一种启发性的算法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。启发中的估价是用估价函数表示的,如转载 2017-05-18 21:47:51 · 6431 阅读 · 0 评论 -
遗传算法求解香蕉函数的极大值
利用遗传算法求Rosenbrock(香蕉函数)函数的极大值。其中香蕉函数表达式如下:遗传算法是利用孟德尔的生物遗传学和达尔文的进化论思想的一种智能计算方法。我觉着与其称之为一种算法,倒不如称之为是一种思想。达尔文的进化论主要有以下三个基本方面:(1)、遗传。亲代把生物信息交给子代,子代总是和亲代具有相同或相似的属性。生物有了这个特征,物种才能稳定存在。(2)、变异。亲代和子原创 2017-07-06 11:24:03 · 7722 阅读 · 5 评论 -
粒子群算法求函数极值
粒子群算法是群智能算法中的一种,除此之外还有其他的群智能算法,如蚁群算法、猴群算法、鱼群算法等等。本文是关于粒子群算法的。所有的群智能算法都是通过模拟自然界中的生物群体的行为来解决问题的一种思想,同遗传算法一样,群智能算法的数学理论基础相对薄弱,缺乏具备普遍意义的理论性分析,算法中涉及的各种参数设置一直没有确切地理论依据,通常都是按照经验型方法确定,对具体问题和应用环境的依赖性比较大。同其他的自适原创 2017-07-06 15:29:51 · 15116 阅读 · 1 评论 -
用模拟退火算法求解TSP问题
模拟退火算法是一种基于MonteCarlo迭代求解策略的一种随机寻优算法。该算法从某一较高初温出发,伴随温度参数的不断下降,结合概率的突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。 模拟退火算法的基本思想是:在一定温度下,搜索从一个状态随机地变化到另一个状态;随着温度的不断下降直到最低温度,搜索过程以概率1停留在最优解。原创 2017-10-16 19:47:17 · 2080 阅读 · 0 评论 -
车牌识别
今天从网上看到了有人转载的一篇文章,觉得不错,抽空研究一下也是很有意义的。但是文章没有提到原文的地址,因而,暂且将转载地址写成上一个转载者的博客地址了:http://blog.csdn.net/lee_cv/article/details/9180781车牌预处理车牌预处理过程的好坏直接影响到车牌图像进行后期处理过程,比如车牌字符分割等。车牌预处理也是尽可能的消除噪声,减少后期转载 2017-10-20 14:46:39 · 1478 阅读 · 0 评论 -
非参数技术——Parzen窗估计方法
常用的模式分类的非参数技术主要有两种:Parzen窗估计方法和K-近邻概率密度估计方法。二者其实是对同一个问题的不同角度去解决。Parzen窗估计方法的主题思想是固定窗口区域容积,去看有多少个样本点在里面,而K-近邻概率密度估计方法的主要思想是固定样本点的个数(k个)看需要的多大的容积。本文是一个Parzen窗估计方法的例子。本例所需要的样本数据如下问题:Consider原创 2016-11-11 11:31:15 · 10957 阅读 · 0 评论 -
贝叶斯决策论例子
这也是我们机器学习课程的一个实验。也是《模式分类》一书中的一道上机题目。具体题目如下: 由于在这里输入众多的数学公式并不容易,所以我对所写的实验报告的一部分转化成了图片的形式。原创 2016-10-18 23:29:13 · 1984 阅读 · 1 评论 -
Python编程实现后剪枝的CART决策树
前面实现了不进行剪枝的CART决策树和预剪枝的决策树,本文是对后剪枝的CART决策树的实现,这样关于CART决策树的东西就凑全了。后剪枝的策略是一种“事后诸葛亮”的策略,因而效果往往要比预剪枝和不剪枝要好。主要的操作方式就是在生成一颗不剪枝的决策树之后,对每一个满足其所有子节点都为叶子结点的结点进行判断,计算如果将其子结点全部删除能不能带来决策树对测试数据分类正确率的提高,如果能则进行剪枝操作...原创 2019-09-07 23:38:17 · 3448 阅读 · 1 评论