准备了很久,终于开始决定开始写关于机器学习相关的文章。深刻体会刚刚涉足一个新领域时的那种茫然和不知所措,而后在各个大神的文章帮助下渐渐走出了自己的一条路。现在想以分享设计方案的方式回馈技术社区和技术分享平台。虽然,这些不一定是最优的设计方案,希望这些技术方案对正在开发中正在迷惑的你有所帮助。
【背景】
在spark的架构中MLlib的工具库非常的全面,几乎包含大部分的机器学习的算法和场景。但是有些组件包却没有实现或者实现了没有暴露出来,在这些场景下用户就不得不自己实现相关的工程包的封装。最近一段时间,将会逐步分享一系列的机器算法的spark工程实现,其中包含IV值计算和分箱计算。
【概念准备】
今天打算分享的主题是信息熵(information gain),我们先来看一下百度词条对于信息熵的定义和设计背景。信息熵,是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率。信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。
【计算公式】
【sp