搜索:最优化

K-means算法的优化目标和初始化要点

原创 2018-07-08 23:23 阅读(188)次
K-means算法的优化目标 K-means算法的原来我在上一篇 K-means算法原理 提到了。但具体实现还有几个要点需要注意。 K-means算法的结果很依赖于一开始初始化类别点,不同初始化点会得到不同的聚类结果,但全局最优解往往只有一个,其他的结果只能是局部最优解。 如何分辨全局最优解还是局部最优解? 这就需要一个判定的方法。这和分类,回归问题一样(最小化代价函数),需要找到K-means算法的最优化目标。 运行K-means算法中有两组重要的变量将会随着算法运行而不断改变,第1个就是每个数据点在每轮循环的时候所属于的类别,也就是每个类别暂时包含的数据点集合。第2个即...

最优化方法入门(一)

原创 2018-05-30 00:36 阅读(123)次
一直很不明白为什么招机器学习岗位都要求研究生以上的学历。笔者面试过很多人,也遇到过一些名牌大学高材生和研究生,发现在软件开发方面其实这些人并未必比一些培训机构出来的小伙子更适合。因为他们中的本科生很可能也是在大学中虚度光阴(基本都是哈,因为重点大学牛逼的都去考研考博了),而研究生为了考研确实在数学上下了一些功夫,但或许因为为了考得上,还要把很多精力放在政治,英语等科目上,在软件开发方面说实话并没有什么实战经验,甚至存在浑水摸鱼的情况,要价还很高。不过直到我在学习机器学习的时候,发现数学的重要性后,认为研究生(我指确实认真读书的那些研究生)确实有一定优势,基本就是数学和英语方面。而最优化理论又是...

常见但不要滥用的优化机器学习结果的方式

原创 2018-05-10 11:50 阅读(104)次
机器学习的结果就是预测函数,或者叫做model(mahout里面是称之为model)。 当我们使用这个预测函数,不论是回归还是分类或者聚类,我们把新的数据传入到预测函数,多少还是需要人工判断一下预测结果的准确度的。当发现结果不理想的时候,一般可以从以下几个方面考虑。 首先,在极少的情况下,你可以把这个预测函数可视化,也就是画图展示出来。这有个苛刻的条件,你的特征项不能超过3个,否则3维以上的图形是很难画出来的。如果你有幸特征项是在3个以下,请尝试画出函数图,看看是否过拟合训练数据。 抛弃理想情况,更多的我们是要观察一下机器学习算法的训练数据是否合适。 首先看看训练样本数量是否足够,特别是多分...

octave 求最值的优化方法fminunc

原创 2018-04-02 18:07 阅读(195)次
octave(matlab)中有一个fminunc方法,可以用优化算法进行求解,算法有BFGS,L-BFGS,共轭梯度法等。 fminunc有个限制,就是指能用来求参数大于等于2的(也就是二元或二元以上方程)。 如果要求一元方程的最值求解,要用fminbnd方法,本文不涉及。 fminunc方法接受2个或者3个参数: 1.  FCN     指向需要求最值的函数的指针 2.  X0        初始的参数值,可以假设如(0;0) 3.  OPTIONS  &nbs...

优化算法解线性回归

原创 2018-04-02 17:51 阅读(140)次
之前介绍过用梯度下降法和正规方程法求解线性回归。 本文将介绍用优化算法求解线性回归。 优化算法有很多种,见 优化算法清单,时间有限,我还在学习和补充中。优化算法中的其中一种就是求最值问题。线性回归的求解思路就是把cost function求最小化。 因为线性回归只有一个特征项的时候,但对应的函数为  ,我们会对应一个2*1矩阵的参数对应,第一个参数θ_0恒等于1,也就是大于等于2维的参数矩阵。 此时需要使用fminunc方法, 方法介绍见   octave 求最值的优化方法fminunc 直接上代码 步骤1,定义需要优化的线性回归的代价函数 funct...