#10 随机森林101—用人话解释随机森林,用python使用随机森林

林子大了,什么“树”都有 !

最近神经网络被学界和业界都玩坏了。之前David 9也跟风一连几篇神经网络的文章。神经网络确实到了一个新高度,其他机器学习算法在目前甚至十年以内显得黯然失色。

但是,David 9不希望大家错过其他也很棒的机器学习算法比如随机森林。虽然不如神经网络在某些领域光芒万丈,随机森林因为其方便快捷的使用,以及训练模型的简单,目前依旧深受许多数据科学家的喜爱。

如果你的老板有一堆数据,想做数据挖掘,想找一点“高大上”的算法而且容易实现,选随机森林吧。不仅比神经网络门栏低,而且对于大多数情况的数据形式,都是可以训练的。而且,有时结果好的让你惊讶。

随机森林集成学习中的一种算法。下面这张图带大家回顾集成学习:

combining_classifiers_overview

之所以叫做随机森林,很明显,这个模型是通过许多决策树集成学习而来的。集成学习是啥?如果你还不知道,请看我们之前的博客:“#3 集成学习–机器学习中的群策群力 !”和“聊聊集成学习和”多样性”, “差异性”的那些事儿~”。 继续阅读#10 随机森林101—用人话解释随机森林,用python使用随机森林

#11 基于能量模型的生成对抗网络–生成对抗网络进阶

在文章“手把手教你写一个生成对抗网络”中,我们谈到过生成对抗网络。意犹未尽的是,只是了解生成对抗网络的基本原理和算法形式,对于训练结果还没有仔细研究。

最近拜读了机器学习四大神之一Yann LeCun (燕乐存 目前在facebook就职) 今年发表的论文“ENERGY-BASED GENERATIVE ADVERSARIAL NETWORK”。基于能量模型的生成对抗网络,训练结果真的很不错。不像一般的生成网络,生成的图片像素随机性大,字体边界模糊。看下图论文在MNIST集上的比较:

来自:论文 ENERGY-BASED GENERATIVE ADVERSARIAL NETWORK
来自:论文 ENERGY-BASED GENERATIVE ADVERSARIAL NETWORK

左边是一般GAN(生成对抗网络)的生成数字, 右边就是论文的改进EBGAN(基于能量的生成对抗网络)。可以很明显地看出,改进的生成数字比较清晰,连接也比较流畅 。传统GAN生成的数字就比较模糊,像素连贯性较差继续阅读#11 基于能量模型的生成对抗网络–生成对抗网络进阶

手把手教你写一个生成对抗网络 — 生成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy)

今天我们接着上一讲“#9 生成对抗网络101 终极入门与通俗解析”, 手把手教你写一个生成对抗网络。参考代码是:https://github.com/AYLIEN/gan-intro

关键python库: TensorFlow, numpy, matplotlib, scipy

我们上次讲过,生成对抗网络同时训练两个模型, 叫做生成器判断器. 生成器竭尽全力模仿真实分布生成数据; 判断器竭尽全力区分出真实样本和生成器生成的模仿样本. 直到判断器无法区分出真实样本和模仿样本为止.

out
来自:http://blog.aylien.com/introduction-generative-adversarial-networks-code-tensorflow/

上图是一个生成对抗网络的训练过程,我们所要讲解的代码就是要实现这样的训练过程。
其中, 绿色线的分布是一个高斯分布(真实分布),期望和方差都是固定值,所以分布稳定。红色线的分布是生成器分布,他在训练过程中与判断器对抗,不断改变分布模仿绿色线高斯分布. 整个过程不断模仿绿色线蓝色线的分布就是判断器,约定为, 概率密度越高, 认为真实数据的可能性越大. 可以看到蓝线在真实数据期望4的地方,蓝色线概率密度越来越小, 即, 判断器难区分出生成器和判断器. 继续阅读手把手教你写一个生成对抗网络 — 生成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy)