- 博客(195)
- 资源 (18)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spark与Scala学习
Spark学习配置Spark源码阅读环境Spark的Standalone模式安装部署Spark生态和Spark架构Spark基本概念弹性分布式数据集RDD概述Spark应用执行机制RDD操作详解1——Transformation和Actions概况RDD操作详解2——值型Transformation算子RDD操作详解3——键值型Transformation算子RDD操作详解4——
2015-07-15 22:02:18
3644
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 本博客系列文章导航
机器学习基础引入机器学习算法的分类生成模型和判别模型从感知机模型说起理解为什么机器可以学习——PAC学习模型理解为什么机器可以学习——Hoeffding不等式理解为什么机器可以学习——VC理论VC维与模型复杂度、样本复杂度噪声与误差线性回归基础Logistic回归基础将回归模型用于分类问题非线性变换过拟合机器学习的数学背景系列文章
2015-03-04 22:07:23
4378
3
原创 【函数式】纯函数与替代模型
纯函数一个函数在程序执行的过程中除了根据输入参数给出运算结果之外没有其他的副作用影响,我们可以把这类函数称为“纯函数”。纯函数由于不依赖外部变量,使得给定函数输入其返回结果永远不变,比如整数的加法函数,它接收两个整数值并返回一个整数值,对于给定的两个整数值,它的返回值永远是相同的整数值。副作用相对于非纯函数,它们带有副作用,这使得函数不仅简单返回一个值,还做了其他事情: 修改了一个变量
2016-05-27 11:07:10
4801
1
原创 【Scala】响应式编程思想
何为响应式编程响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。 这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。 以响应式编程方式进行思考,意味着要放弃命令式且带状态的编程习惯,并且强迫你的大脑以一种不同的方式去工作。 响应式编程提高了代码的抽象层级,所以你可以只关注定义了业务逻辑的那些相互依赖的事件,而非纠缠于大量
2016-05-15 19:47:31
4312
原创 【Scala-ML】使用Scala构建机器学习工作流
引言在这一小节中,我将介绍基于数据(函数式)的方法来构建数据应用。这里会介绍monadic设计来创建动态工作流,利用依赖注入这样的高级函数式特性来构建轻便的计算工作流。建模过程在统计学和概率论中,一个模型通过描述从一个系统中观察到的数据来表达任何形式的不确定性,模型使得我们可以用来推断规则,进行预测,从数据中学习有用的东西。 对于有经验的Scala程序员而言,模型常常和monoid联系起来。mon
2016-03-19 20:34:19
6754
1
原创 【Scala-ML】如何利用Scala构建并行机器学习系统
引言在学习Scala的过程中,我发现其在构建大规模分布式计算系统上有与生俱来的特质。其丰富的类型系统可以帮助编程设计提供很好的信息隐藏和抽象,其monoids和monads概念利用Scala高阶函数实现计算并行和数据处理流水线,其Actor系统帮助编写可伸缩性的应用程序,其实现特定领域语言的优势帮助开发用户很好克服不同语言的障碍。 虽然以上Scala优点说起来不会感同身受,但这可以作为我学习的一大
2016-03-19 20:33:35
6355
原创 【Scala类型系统】自身类型(self type)引用
定义特质可以要求混入它的类扩展自另一个类型,但是当使用自身类型(self type)的声明来定义特质时(this: ClassName =>),这样的特质只能被混入给定类型的子类当中。 如果尝试将该特质混入不符合自身类型所要求的类时,就会报错。从技术角度上看,自身类型是在类中提到this时,对于this的假设性类型。从实用角度上看,自身类型指定了对于特质能够混入的具体类的需求。如果你的特质仅用于混
2016-03-17 22:38:01
6266
原创 【Scala】Cake模式和依赖注入
依赖注入(Dependency Injection)和控制反转(Inversion of Control)Dependency Injection & Inversion of Control是Martin Fowler在2004年所提出來的一个概念,Martin Fowler在这篇文章中指出,DI可以有三种形式来实现。这观念以后有Spring项目和Google实现出来,变成了Java Enterp
2016-03-11 22:06:27
5122
1
原创 【Scala】抽取器
引子由于样本类和构造器模式相关联,所以在模式匹配中常使用样本类做数据的解构和分析。 有些情况下,或许希望能够在不创建关联的样本类的前提下编写出类似的模式匹配,此时抽取器(Extractor)可以用来定义与对象表达解耦的模式。抽取email地址的例子问题假设你需要分析一些代表email地址的字符串:对于给定的字符串,首先要判断它是否为email地址,如果是,再分析访问地址的用户名和域名。 def
2016-03-10 17:12:54
4745
2
原创 【函数式】Monads模式初探——for解析式
for表达式是monad语法糖先看一组示例:case class Person(name: String, isMale: Boolean, children: Person*)val lara = Person("Lara", false)val bob = Person("Bob", true)val julie = Person("Julie", false, lara, bob)val
2016-03-05 21:15:41
3529
原创 【函数式】Monads模式初探——Option Monad
Option MonadScala中的Option是一个Monad实现。 Option的简化版定义如下:sealed abstract class Option[+A] { def isEmpty: Boolean def get: A def map[B](f: A => B): Option[B] = if(isEmpty) None else Some(f(this.get)
2016-03-05 21:14:51
3104
原创 【函数式】Monads模式初探——Monad概念
单子单子(Monad)是一种将函子组合应用的方法。在计算机科学里,单子经常用来代表计算(computation)。单子能用来把与业务无关的通用程序行为抽象出来,比如有用来处理并行(Future)、异常(Option和Try等)、甚至副作用的单子。 单子的flatMap和unit操作作为构建数据类型的基本操作,可以实现很多复杂的高阶函数。单子的程序描述Monad定义了unit和flatMap两个函数
2016-03-05 21:14:00
10796
原创 【函数式】Monads模式初探——Endofunctor
自函子自函子(Endofunctor)是一个将范畴映射到自身的函子(A functor that maps a category to itself)。函子是将一个范畴转换到另一个范畴,所以自函子是一种特殊的函子。 由三部分组成: 一组元素对象 一组态射 态射组合(二元运算) 如果这个范畴满足结合律,那么它是一个半群;如果半群满足幺元(单位元,identity),那么它是幺
2016-03-01 10:53:28
3499
原创 【函数式】Monads模式初探——Functor
函子与范畴函子(functor)是从一个范畴到另一个范畴的转换,并且其亦可转换/保持态射(morphism)。 一个态射是从一个范畴里的一个值到同一个范畴里的另一个值的变换。在猫的范畴的例子里,一个态射好比一个盒子,能够把黯淡无光的猫转化为一个霓虹闪耀的猫。在类型的范畴里(计算机科学常用的范畴),一个态射是一个把某类型转化为另一个类型的函数。 函子是可以把猫转化为狗的东西(不同范畴的转换)。函子
2016-02-29 21:33:18
3655
原创 【函数式】Monads模式初探——Monoids
Monads是什么知乎里有关于什么是Monad的问题讨论,而在维基百科中也有关于Monad的释义。作为初次接触到Monads概念,难免会有些晕头转向,也难免会有些畏惧(因为Monads和数学中的范畴论有密切关系),但是Monads又是如此的重要,因为它在函数式编程中实在是应用太广泛了,并且在Scala的标准库中又常常遇到,使得我们不得不好好研究一番。MonoidsMonoids是一种元素的集合,它需
2016-02-28 21:36:14
5214
2
原创 【Scala类型系统】隐式转换与隐式参数
隐式转换隐式转换是使用implicit修饰的带有单个参数的普通函数。这种函数将自动应用,将值从一种类型转换为另一种类型。 举例说明: 我们想将整数n转换为分数n/1, 定义implicit def int2Fraction(n: Int) = Fraction(n, 1) 在进行如下表达式求值的时候: val result = 3 * Fraction(4, 5) 编译
2016-02-27 21:35:31
3197
原创 【Scala类型系统】函数式Queue的简易实现
实现一个函数式Queue泛型类函数式队列是一种具有以下三种操作方式的数据结构: head 返回队列的第一个元素 tail 返回除第一个元素之外的队列 append 返回尾部添加了指定元素的新队列如果Queue是一个不变队列,也就是函数式队列。在添加元素的时候不会改变其内容,而是返回包含了这个元素的新队列。 如果Queue是可变类型的,那么append操作将改变队列的内容
2016-02-27 21:34:38
3125
原创 【Scala类型系统】类型参数化和变化型注解
引言类型参数化(Parameterized Types)可以用来编写泛型类和特质,比如定义Set[T],这使得我们可以创建诸如Set[String]的类型。而变化型注解(Variance Annotation)定义了参数化类型的继承关系,比如Set[String]是Set[AnyRef]的子类型。 这些语法可以让我们实现信息隐藏技术,同时它们也是编写库程序的基础。类型参数化这里以水果盒的代码作为例
2016-02-27 21:33:32
4448
原创 【scikit-learn】评估分类器性能的度量,像混淆矩阵、ROC、AUC等
内容概要¶模型评估的目的及一般评估流程分类准确率的用处及其限制混淆矩阵(confusion matrix)是如何表示一个分类器的性能混淆矩阵中的度量是如何计算的通过改变分类阈值来调整分类器性能ROC曲线的用处曲线下面积(Area Under the Curve, AUC)与分类准确率的不同1. 回顾¶模型评估可以用于在不同的模型类型、调节参数、特征组合中选择
2016-01-22 15:57:39
26904
原创 【scikit-learn】网格搜索来进行高效的参数调优
内容概要¶如何使用K折交叉验证来搜索最优调节参数如何让搜索参数的流程更加高效如何一次性的搜索多个调节参数在进行真正的预测之前,如何对调节参数进行处理如何削减该过程的计算代价1. K折交叉验证回顾¶交叉验证的过程选择K的值(一般是10),将数据集分成K等份使用其中的K-1份数据作为训练数据,另外一份数据作为测试数据,进行模型的训练使用一种度量测度来衡量
2016-01-22 15:56:15
46783
7
原创 【scikit-learn】交叉验证及其用于参数选择、模型选择、特征选择的例子
内容概要¶训练集/测试集分割用于模型验证的缺点K折交叉验证是如何克服之前的不足交叉验证如何用于选择调节参数、选择模型、选择特征改善交叉验证1. 模型验证回顾¶进行模型验证的一个重要目的是要选出一个最合适的模型,对于监督学习而言,我们希望模型对于未知数据的泛化能力强,所以就需要模型验证这一过程来体现不同的模型对于未知数据的表现效果。最先我们用训练准确度(用
2016-01-22 15:54:56
61969
21
原创 【Akka】Actor模型探索
Akka是什么Akka就是为了改变编写高容错性和强可扩展性的并发程序而生的。通过使用Actor模型我们提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台。在容错性方面我们采取了“let it crash”(让它崩溃)模型,人们已经将这种模型用在了电信行业,构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Actor还为透明的分布式系统以及真正的可扩展高容错应用的基础进行了抽象。Ak
2016-01-21 15:15:52
5886
原创 【Akka】在并发程序中使用Future
引言在Akka中, 一个Future是用来获取某个并发操作的结果的数据结构。这个操作通常是由Actor执行或由Dispatcher直接执行的. 这个结果可以以同步(阻塞)或异步(非阻塞)的方式访问。 Future提供了一种简单的方式来执行并行算法。Future直接使用Future中的一个常见用例是在不需要使用Actor的情况下并发地执行计算。 Future有两种使用方式: 阻塞方式(B
2016-01-21 15:08:36
8012
2
原创 【Akka】Akka中actor的生命周期与DeathWatch监控
Actor的生命周期在Actor系统中的路径代表一个“地方”,这可能被一个存活着的的actor占用着。最初,路径(除了系统初始化角色)是空的。当actorOf()被调用时,指定一个由通过Props描述给定的路径角色的化身。一个actor化身由路径和一个UID确定。重新启动仅仅交换Props定义的Actor 实例,但化身与UID依然是相同的。 当该actor停止时,化身的生命周期也相应结束了。在这一
2016-01-19 11:34:43
3040
原创 【Akka】Actor引用
Actor系统的实体在Actor系统中,actor之间具有树形的监管结构,并且actor可以跨多个网络节点进行透明通信。 对于一个Actor而言,其源码中存在Actor,ActorContext,ActorRef等多个概念,它们都是为了描述Actor对象而进行的不同层面的抽象。 我们先给出一个官方的示例图,再对各个概念进行解释。 上图很清晰的展示了一个actor在源码层面的不同抽象,和不同
2016-01-18 17:29:49
4221
原创 【Akka】Akka入门编程实例
引言这篇文章主要是第一次学习Akka编程,先试试水,探探坑,对Akka和SBT的使用有一个直观的了解,以几个简单的akka编程实例来说明akka的使用。希望在日后的学习和编程中,能有更多自己的体会和经验总结来分享。Actor模型Actor实例可以想象成是服务器上的Web服务,你无法控制,只能通过发送消息去请求执行任务或查询信息,而不能直接在Web服务中修改状态或者处理资源。通过发送不可改变的消息,虽
2016-01-17 19:26:16
6357
2
原创 【Scala】尾递归优化
以递归方式思考递归通过灵巧的函数定义,告诉计算机做什么。在函数式编程中,随处可见递归思想的运用。 下面给出几个递归函数的例子:object RecursiveExample extends App{ // 数列求和例子 def sum(xs: List[Int]): Int = if (xs.isEmpty) 1 else xs.head + sum
2016-01-15 20:30:08
5813
原创 【Linux】使用update-alternatives命令进行版本的切换
引言在Debian系统中,我们可能会同时安装有很多功能类似的程序和可选配置,可能会出现同一软件的多个版本并存的场景。比如像是一些编程语言工具,一些系统中自带的是python2.6,而现在python2.7和python3.4使用较多,还有java有1.6,1.7和1.8版本。 update-alternatives是Debian系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使
2016-01-06 16:42:37
37081
原创 【python】python中的多态与duck typing
python与鸭子类型调用不同的子类将会产生不同的行为,而无须明确知道这个子类实际上是什么,这是多态的重要应用场景。而在python中,因为鸭子类型(duck typing)使得其多态不是那么酷。 鸭子类型是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由”当前方法和属性的集合”决定。这个概念的名字来源于由James Whitcomb Riley提
2015-12-06 15:39:20
4430
原创 【机器学习中的数学】基函数与函数空间
引言在学习线性回归模型的时候就会遇到基函数,可能我们会遇到多项式基函数、高斯基函数、sigmoid基函数,当然在高等数学和信号系统中还经常会碰到傅里叶基。有时候,不禁要问,这些基函数为什么这么设计?这些基函数的作用是什么? 后来发现基函数是核方法和字典训练的基础,于是乎,我逐渐有了一些例如特征转换和映射、字典元素的概念。不过还是对基函数与函数空间的关系、基函数的深层认识模棱两可。我希望能通过这篇文
2015-11-16 21:23:46
19385
1
原创 【python】locals()、globals()与名字空间
名字空间Python使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字就是变量名,字典的值就是那些变量的值。实际上,名字空间可以象Python的字典一样进行访问。 在一个Python程序中的任何一个地方,都存在几个可用的名字空间。每个函数都有着自己的名字空间,叫做局部名字空间,它记录了函数的变量,包括函数的参数和局部定义的变量。每个模块拥有它自己的名字空间,叫做全局名字空间,它
2015-11-14 11:20:19
1642
原创 【机器学习技术】高斯过程初探
概述高斯过程是基于统计学习理论和贝叶斯理论发展起来的一种机器学习方法,适于处理高维度、小样本和非线性等复杂回归问题,且泛化能力强,与神经网络、支持向量机相比,GP具有容易实现、超参数自适应获取、非参数推断灵活以及输出具有概率意义等优点。 在统计学和机器学习两个领域中,一些基本理论和算法是共享通用的,但统计学的一个基本关注点在于对数据和模型关系之间的理解,而机器学习的目标主要是用于更准确的预测和对学
2015-11-13 15:21:52
20936
原创 【特征工程】特征选择与特征学习
title: 【特征工程】特征选择与特征学习 date: 2015-11-12 09:38:06 category: Feature Engineering tags: - Machine Learning- Feature Engineering特征选择与特征学习在机器学习的具体实践任务中,选择一组具有代表性的特征用于构建模型是非常重要的问题。特征选择通常选择与类别相关性强、且特征彼此间相
2015-11-12 22:52:32
14098
1
原创 【机器学习中的数学】函数空间
数学的空间数学中的空间概念是要有研究工作的对象和遵循的规则。其中,包含元素和结构。 如线性结构中,定义加法和数乘;拓扑结构中,要有距离、范数、开集三要素。距离范数是具有“长度”概念的函数。 距离、范数可以指向量的距离,我们可以定义以下几种向量的距离: d1(x,y)=sqrt((x1-y1)^2 + … + (xn-yn)^2) d2(x,y) = max{|x1-y1|, …,
2015-11-12 22:51:14
3424
原创 【聚类分析】聚类算法初阶引入
1 聚类分析基本概念聚类分析将数据划分成有意义或有用的簇。如果目标是划分成有意义的组,则簇应当捕获数据的自然结构。 聚类分析是一种分类的多元统计分析方法。按照个体或样品的特征将它们分类,使同一类别内的个体具有尽可能高的同质性(homogeneity),而类别之间则应具有尽可能高的异质性(heterogeneity)。 聚类是研究数据间逻辑上或物理上的相互关系的技术,其分析结果不仅可以揭示数据间的
2015-11-12 22:49:11
5493
原创 【特征工程】特征工程技术与方法
引言在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而,单纯学习机器学习的算法流程,可能仍然不会使用这些算法,尤其是应用到实际问题的时候,常常不知道怎么提取特征来建模。 特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。特征工程的重要意义数据特征会直接影响你使用的预测模型和实现的预测结果。准备和选择的特征越好,则实现的结果越好。 影响预测结果好坏的
2015-07-31 15:43:56
16980
2
原创 【机器学习基础】梯度提升决策树
引言上一节中介绍了《随机森林算法》,该算法使用bagging的方式作出一些决策树来,同时在决策树的学习过程中加入了更多的随机因素。该模型可以自动做到验证过程同时还可以进行特征选择。 这一节,我们将决策树和AdaBoost算法结合起来,在AdaBoost中每一轮迭代,都会给数据更新一个权重,利用这个权重,我们学习得到一个g,在这里我们得到一个决策树,最终利用线性组合的方式得到多个决策树组成的G。
2015-07-26 12:06:06
6606
原创 【机器学习基础】随机森林算法
引入我们回顾一下之前学习的两个算法,Bagging算法中,通过bootstrapping得到不一样的数据,通过这些数据送到一个基本算法之后,得到不同的g,最后对这些g取平均得到G;决策树算法中,通过递归方式建立子树,最终得到一棵完整的树。 这两种算法都有其鲜明的特点,决策树对于不同的数据相对会敏感一些,即其算法的variance很大,而Bagging的特点是通过投票和平均的方式来降低varianc
2015-07-26 12:03:42
5665
1
原创 【机器学习基础】决策树算法
引言在之前的两节博文《混合和装袋》和《自适应提升》中,我们已经有现成的一堆假设g在手中,我们还如何将这些g混合起来,得到更好的分类器。 混合方式可以分为三种情况: 把g看做是同等地位,通过投票或者平均的方式将它们合起来,称为Bagging g是不平等的,有好有坏,一个可行的做法是把g当成是特征的转换,然后丢进线性模型训练就可以了,这称为AdaBoost 如果是不同的条件下,使用不
2015-07-26 12:02:23
4314
原创 【Spark Core】从作业提交到任务调度完整生命周期浅析
引言这一小节我们将就之前写的几篇博文,从提交Job,到Stage划分,到任务分发,再到任务的执行,这一完整过程做一系统的回顾。在这一过程中理清思路,明确几篇文章中涉及到的调度关系和逻辑关系。Spark作业提交到执行过程 上面这个图摘自张包峰的csdn博客,这个图很清晰的描述了作业提交执行的整个过程,略去了细节原理,给人一种清晰直观的流程概况。 通过该图结合一下我之前的博文来描述一下文章的内容和相
2015-07-20 21:19:11
2377
2
Reactive Programming with Scala and Akka(Pdf格式)
2016-05-15
Learning scikit-learn Machine Learning in Python
2015-01-28
Building Probabilistic Graphical Models with Python
2015-01-28
Building.Machine.Learning.Systems.with.Python
2015-01-28
Visual Assist X 10.8.2043.0 完美破解版
2014-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人