The best input is OUTPUT.

2017-10-24
机器学习算法实践-标准与局部加权线性回归

机器学习算法实践-标准与局部加权线性回归

前言

最近开始总结学习回归相关的东东了,与分类的目标变量是标称型不同,回归是对连续型数据进预测。当然还是从最简单的线性回归开始,本文主要介绍无偏差的标准线性回归和有偏局部加权线性回归的理论基础以及相应的Python实现。

标准线性回归

标准线性回归的理论知识很简单,我们既可以写出它的标量表达式也可以写成矩阵的形式,其中矩阵的形式也可以通过投影矩阵进行推到得到。本部分就对标准线性回归的表达式进行下简单的推导。

Read More

2017-10-15
机器学习算法实践-Platt SMO和遗传算法优化SVM

机器学习算法实践-Platt SMO和遗传算法优化SVM

前言

之前实现了简单的SMO算法来优化SVM的对偶问题,其中在选取$\alpha$的时候使用的是两重循环通过完全随机的方式选取,具体的实现参考《机器学习算法实践-SVM中的SMO算法》。

本文在之前简化版SMO算法的基础上实现了使用启发式选取$\alpha$对的方式的Platt SMO算法来优化SVM。另外由于最近自己也实现了一个遗传算法框架GAFT,便也尝试使用遗传算法对于SVM的原始形式进行了优化。

Read More

2017-10-08
遗传算法框架GAFT优化小记

遗传算法框架GAFT优化小记

前言

前段时间一直在用自己写的遗传算法框架测试算法在优化力场参数的效果,但是跑起来效率很慢,因为适应度函数需要调用多次力场程序计算能量,但是还是比我预想中的慢我也没有及时对程序进行profiling和优化。直到放假前在github有个使用gaft做SVM参数优化的童鞋开了个issue中说道在gaft优化的过程中会大量调用适应度函数,这才使我在国庆放假期间对gaft进行了profiling找到程序瓶颈并针对性的优化。

本文就记录下自己gaft做profiling并优化的过程以及优化的效果。

Read More

2017-09-23
遗传算法中适值函数的标定与大变异算法

遗传算法中适值函数的标定与大变异算法

前言

本文尝试对遗传算法中不同适值函数的标定(Scaling)方法进行下总结,并针对常用的线性标定和动态线性标定进行了Python实现,以装饰器的形式添加到遗传算法框架GAFT中,这样在使用GAFT运行遗传算法迭代的时候可以更加Pythonic的给自定义的适值函数进行标定。最后针对能够防止早熟情况的大变异算法进行了相应的实现。

目前(动态)线性标定装饰器以及大变异算子均已添加到GAFT中,gaft项目链接:

Read More

2017-09-19
遗传算法中几种不同选择算子

遗传算法中几种不同选择算子

前言

本文对遗传算法中的几种选择策略进行了总结, 其中包括:

  1. Proportionate Roulette Wheel Selection
  2. Linear Ranking Selection
  3. Exponential Ranking Selection
  4. Tournament Selection

对于每种选择策略我都使用Python进行了相应的实现并以内置插件的形式整合进了本人所写的遗传算法框架GAFT中。对需要使用遗传算法优化问题以及学习遗传算法的童鞋可以作为参考.

项目链接:

Read More

2017-09-10
递归式求解-主方法

递归式求解-主方法

本文对递归式求解中很重要的主方法进行介绍总结。

主方法

主方法为如下形式的递归式提供了一种”菜谱式”的求解方法:
$$T(n) = aT(n/b) + f(n)$$
其中$a \ge 1, b \gt 1$是常数,$f(n)$是渐进正数。

上式描述了这样的一个算法运行时间: 他将原问题的规模为$n$的问题划分为$a$个小的子问题,每个子问题的规模为原来的$\frac{1}{b}$. $a$个子问题递归的进行求解,每个花费时间为$T(n/b)$。子问题合并的代价为$f(n)$

Read More