- 博客(30)
- 收藏
- 关注
原创 hudi spark avro兼容性问题
在学习hudi过程中,参考了:https://hudi.apache.org/docs/quick-start-guide.html,在使用spark shell执行用例:进入spark shell:spark-shell \--packages org.apache.spark:spark-avro_2.11:2.4.6,org.apache.avro:avro:1.8.2 \--repositories http://maven.aliyun.com/nexus/content/groups
2020-12-28 21:13:59
2232
2
原创 KNN
#_*_ coding:utf-8 _*_from numpy import *import operatorimport matplotlibimport matplotlib.pyplot as pltimport matplotlib.fontconfig_pattern as fontPatternimport os#构造数据集def createDataSet():
2017-12-02 14:31:58
322
原创 Decision Tree
1.使用sklearn来完成购买电脑的预测import csvfrom sklearn import preprocessing, treefrom sklearn.feature_extraction import DictVectorizerfeatureList = [] # 特征向量容器 --> 注意这可是特征和特征值组成的dict所组成的ListlabelList =
2017-11-30 17:40:38
505
原创 spark更新广播变量实例
实际项目中需要使用更新广播变量的方式来满足需求,其代码具体如下:@NotProguardpublic class WbBroadcastWrapper { Broadcast> broadcastBlackWhiteList = null; private static WbBroadcastWrapper obj = new WbBroadcastWrapper(); p
2017-10-11 00:27:48
3740
原创 6.生成学习算法,高斯判别和朴素贝叶斯
首先,我们举个例子来说明什么是生成学习算法: 假设要判定一个病人所患的是癌症是良性的还是恶性的,我们可以分别对恶性的样本进行训练得到一个模型,再在对良性的样本进行训练得到一个模型,然后对新的病人分别匹配这两个样本看看哪一个样本匹配的更好,匹配较好的那个即为所求。生成学习算法概念:对两个类别的样本分别进行建模,用新的样本去匹配两个模型,匹配度较高的作为新样本的类别。判别算法的概
2017-10-10 10:11:37
782
原创 5.广义线性回归
1. 首先我对前面几个章节做了一个总体概述如下:其实我们前面论述的那些函数,无非可以总结成两种模式:1):我们假设y满足高斯分布,之后我们得到了基于最小二乘的线性回归模型。2) y取0或者1,在这种情况下,最为自然的0~1之间的分布是伯努利分布,对于这种情况我们得到了逻辑回归;3) 若你忘记了Bernoulli分布,这里给您做个提醒,若已经熟练掌握请忽略,
2017-10-01 01:33:51
7929
原创 4.牛顿法和拟牛顿算法
1. 我们用一个图来解释扭断算法的基本实现:由图中可知:更一般地:这就是牛顿法的一次迭代。现在这个算法可以得到一个值,使得 ;2. 上面论述的是牛顿法的几何意义,下面我们从代数的角度来论述下牛顿法:考虑无约束最优化问题: (B,1)其中为目标函数的极小值
2017-09-27 15:52:33
829
原创 3.感知机学习方法
1.在讲感知机算法之前先引入符号函数sign的概念:其函数图像为:2. 感知机策略针对的样本都是线性可分的,我们做感知机的目的是找出一个能够将训练集正实例点和负实例点完全分开的分离超平面。假设输入空间中任一点到超平面S(方程为w.x+b)的距离为:||w||表示w的二范数3. 其次,对于误分类的数据()来说,时,因为当,=-1,当时,=+
2017-09-26 17:58:26
484
原创 2.局部加权线性回归和逻辑回归
1.局部加权线性回归在讲述局部加权线性回归时,先论述关于,过拟合的概念:李航老师的《统计学习方法》中给出了很好的定义:过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一个模型对已知数据预测得很好,但对于未知数据预测很差的想象。欠拟合的概念与此相反,下面用3张图来展示其拟合程度:从完美拟合所有训练数据的意义上来说,这是一个伟大的模型,当从另一个方面来讲它也许并不是
2017-09-25 17:39:26
1091
原创 1.线性回归的推导--梯度下降法
1.在线性回归问题中,我们通常使用下面公式来拟合训练集:其中,为特征向量的个数;2.如图假设x是二维的,则有3. 我们可以将损失函数表示为:4. 我们将目标函数转成求损失函的最小值,该问题已经转换成了最小二乘问题,因此我们可以使用梯度下降法对求最小值。 1) 首先,为了简化问题,我们假设只有一组样
2017-09-22 13:18:00
5898
2
原创 《统计学习方法》-EM算法引例的说明
最近在哥们在看统计学习方法的时候,对于EM算法的引例子9.1中三硬币模型有疑问,于是我做了相应的整理和推导,希望对机器学习爱好者有所帮助,共勉。 例子大概是这样的: 假设有3枚硬币,分别记作A,B,C,这些硬币正面出现的概率分布分别是PI,p和q,进行如下的硬币是实验:先投掷硬币A,根据其结果选出硬币B和C,正面选B,反面选C;然后投掷选出的硬币,出现正面记作1,出现方面记
2017-09-17 12:01:29
1398
原创 1.SparkRDD join案例
1.本实例主要假设有两个数据源,一个是使用了SparkSQL的API读取JSON文件,另一个数据源来自于自己构造的数据信息(实例中的peopleInformation)。2.实例演示了JSON文件的读取,和RDD的JOIN操作,以及Schema,RDD和ROW之间的有趣关系;3.具体实例如下:import org.apache.spark.SparkConfimport org.a
2017-05-07 22:20:41
2181
原创 8.函数式编程
1.函数说明:def map[U : ClassTag](f : T => U) : RDD[U] = withScope{1.1 其中f 表示函数名称;T表示输入参数;U表示返回值类型1.2 map是一个函数,其参数为(f : T => U)函数,只不过,函数名为f, 函数类型为 T => U2.函数要点概述:2.1 函数可以直接赋值给变量2.2 函数更常用的方
2017-05-05 11:35:19
314
原创 7.scala面向对象2
1.介绍scala面向对象2的时候先提下以下几点:1.1 scala函数是指不依赖于类的,一旦依赖于类的时候,就叫方法,过程就是一个没有返回值的方法1.2 scala中有类似于lazy级别的操作,lazy的变量在第一次使用时才会被实例化。spark中也有类似的操作,例如spark中Transformation类型的操作都是lazy的,不会触发job执行,Action级别的操作会触发job执
2017-04-18 17:48:34
270
1
原创 6.Scala中的Map和Tupple
1.默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成了新的Map,原有的Map的内容保持不变2.Map的实例是调用工厂方法模式apply来构造Map实例的,而需要注意的是Map是接口,在apply中使用了具体的实现3.如果想直接new出Map实例,则需要使用HashMap等具体的Map子类4.查询一个Map中的值,一定采用getOrElese的语法,一方面在ke
2017-04-18 09:19:17
742
1
原创 5.Scala面向对象
1.在Scala中定义类用class关键字2.可以使用new ClassName的方式构建出类的对象3.如果Object中的名称和class的名称相同,则Object中的内容都是class的静态内容:也就是说Object中的内容class都可以在没有实例化的时候直接去调用,正因为没有类的实例的时候可以调用object中的一切内容,所以使用object中特定的方法来创建实例,而这个特定的方法
2017-04-17 14:31:00
235
1
原创 4.Scala数组
1.关于Scala中的数组的创建与操作1).最原始的创建数组的方式:val array = new Array[Int](5),指定数组的类型是Int,且其固定长度是5个长度2).最常用和经典的创建数组的方式是:Array[Int]{1,2,3,4,5},直接通过Array类名并传入参数的方式来创建数组实例,其背后的实现是调用Array的工厂方法apply来构建出数组及数组的内容。3)
2017-04-16 18:08:10
347
2
原创 3.Scala中的函数
1.函数可以被简单的被认为是包裹了一条或几条语句的代码体,该代码体接收若干个参数,经过代码体的处理后返回结果。例如:f(x) = x + 1 2.在Scala中函数可以像变量一样被传递,被赋值,同时函数可以赋值给变量, 3.变量也可以赋值给函数,之所以可以这样,原因在于函数背后是类和对象,也就说在运行的时候函数其实是一个变量!!!当然这背后的类是Scala语言自动帮助我们生成的,
2017-04-16 14:13:58
383
2
原创 2.scala控制结构
scala总的控制结构跟java有很大的区别,以下是scala特色的控制结构知识点总结:1.scala中的if表达是有返回值的2.if条件表达式可以进行类型推导,类型推导的一般过程就是根据变量的值的类型来确定变量的类型;类型推导带来的好处就是可以省略掉变量类型的书写,为复杂算法的实现,提供了非常大便利;3.scala中允许if语句不跟else部分,默认的实现是if(...) ... e
2017-04-13 17:19:39
423
2
原创 1.scala之HelloWorld
现在跟大伙一起分享下scalahelloword级别的学习要点:1.val的重要性:scala使用val来修饰常量,有点类似于java中的final,在分布式系统中这个val意义非凡,在分布式系统中,一般要求值不可变,val声明的内容是不可变的,所以不用担心。在机器之间传递数据的时候内容被修改,这为分布式编程打下了非常好的基础。spark中的核心抽象RDD也是不可改变的。2.scala是一
2017-04-13 12:34:45
471
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人