自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 CH_8 Adaboost及其Spark实现

Adaboost算法原理及其Spark实现

2023-02-06 22:49:00 324

原创 CH10_隐马尔科夫模型及其实现(前向算法&后向算法)

隐马尔可夫模型原理及实现

2022-07-10 15:47:27 257

原创 CH9_高斯混合型(GMM)及其Spark实现

Spark自编程实现高斯混合型(GMM)1. EM算法简介EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计,或极大后验概率估计,EM算法由两步组成:E步,求期望;M步,求极大。2. EM 算法步骤输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ)输出:模型参数θ$1. 选择参数的初始值 \theta^{(0)},开始迭代$$2.E步:记\theta^{(i)} 为第i次迭代参数 \theta 的估计值,在第i+1次迭代E步,计算: $Q

2020-05-31 17:31:36 582

原创 CH6_逻辑回归(LR)及其Spark实现

1. 逻辑斯谛分布设X是连续随机变量,X服从逻辑斯谛分布是指X具有下列分布函数和密度函数:F(x)=P(X⩽x)=11+e(x−u)/γf(x)=F′(x)=e−(x−u)/γγ(1+e(x−u)/γ)2其中,u为位置参数,γ为形状参数F(x) = P(X \leqslant x) = \frac{1}{1+e^{(x-u)/\gamma}} \\f(x) = F^{'}(x) = \frac{e^{-(x-u)/\gamma}}{\gamma(1+e^{(x-u)/\gamma})^2} \\

2020-05-13 13:36:49 823

原创 CH5_决策树(ID3)及其spark实现

class DecisionTreeModel(data: DataFrame, labelColName: String, threshold: Double = 1e-2) { private val spark = data.sparkSession import spark.impli...

2019-12-07 22:40:11 526

原创 CH4_朴素贝叶斯及其Spark实现

Spark实现朴素贝叶斯 // 读取数据 val mnistTrain = spark.read .option("header", true) .option("inferSchema", true) .csv("F:\\DataSource\\naivebayes_data.csv") .persist() val sche...

2019-04-01 23:57:44 1124

原创 CH2_感知机算法原理及其spark 实现

spark 实现感知机算法感知机感知机是二分类的线性分类问题,由Rosenblatt在1957年提出,虽然年代久远,但是感知机简单实用易实现,并且是深度学习和神经网络的基础。感知机模型的输入是样本的特征向量,输出是样本的类别,分别为“+1”,“-1”,如果训练样本是线性可分的数据集,则感知机学习将会得到一个将训练数据集的两类样本点完全正确分开的超平面。非线性可分数据集则不能训练得到这个超平面,...

2019-03-07 23:11:05 472

原创 CH14_Kmeans聚类算法及其Spark实现

Spark实现 – Kmeans聚类算法Kmeans简介Kmeans是最常用的聚类算法,也是十大经典的数据挖掘算法之一。聚类的思想用一句话概括就是“物以类聚,人以群分”。kmeans算法作为最基础的算法之一,基本上每本数据挖掘的书都会讲到,这里就不在啰嗦了。本文主要结合实现原理利用Spark实现一下过程。算法实现步骤step1 首先随机选取k个样本点最为初始聚类中心step2 计算每个样...

2018-11-28 23:33:08 2962 3

原创 CH3_K近邻(KNN)算法及其Spark实现

Spark 实现KNN算法 – 基于RDD def runKnn(trainSet: DataFrame, testSet: DataFrame, k: Int, cl: String) = { val schema = testSet.schema.map(_.name) val testFetures: RDD[Seq[Double]] = testSet ...

2018-11-21 21:33:15 2344 19

原创 Spark PairRDDFunctions(reduceByKey、combineByKey、aggregateByKey、groupBykey之间的区别和联系)

spark 键值对RDD算子简介 :reduceByKey、combineByKey、aggregateByKey、groupBykey之间的区别和联系

2023-02-10 20:09:30 244

原创 Spark map&mapPartition的区别

Spark map&mapPartition

2023-02-05 22:09:40 173

原创 PID算法及其实现

PID算法及其实现

2022-11-21 04:00:00 863

原创 模拟退火算法及其Scala实现

模拟退火算法及其实现(Scala)

2022-11-20 21:48:16 90

原创 水塘抽样算法及其代码实现(Scala)

水塘抽样算法及其代码实现(Scala)

2022-11-12 23:01:57 632

原创 flink多流结合的方式

flink多流结合的方式1. join:可以连接两个不同类型的数据流;将两个流相同key的数据分配到同一个窗口的篮子中;窗口结束时,两个篮子的数据会做笛卡尔积计算,形成一个pair,然后对pair数据进行joinFunction的操作;因为window的数据都是在内存中,所以,当某个key对应的数据很大的时候可能造成OOM。// Join 操作侧重于对数据对的处理 val joined: JoinedStreams[(String, Int), (String, String)] = stre

2020-10-30 22:53:22 1695

原创 Spark ML 学习:Pipline

PiplinePiplines:就是一个工作流程,其中包含要按特定顺序运行的一系列PiplineStages(Transformer和Estimators);一个Pipline在结构上包含一个或多个Stage,每个Stage都会完成一个任务(数据处理、数据装换、模型训练、参数设置等)Transformers:将一个DataFrame转换成另一个DataFrameEstimators:主要做模型拟合,用来生成一个transformer。其他相关概念:DataFrameParame

2020-06-10 22:18:13 248

原创 大数据时代的“小数据 系列3 --Shapiro-Wilk检验

什么是Shapiro-Wilk检验Shapiro-Wilk检验用来检验小样本数据是否数据符合正态分布。类似于回归的方法一样,计算一个相关系数,它越接近1就越表明数据和正态分布拟合得越好。构建检验统计量W建立原假设与备择假设原假设为H0:数据集符合正态分布;备择假设H1:数据集不符合正态分布。计算p值非正态分布的小样本数据在检验时也可能出现较大的W值。因此需要通过模拟或者查表来估计其概率。由于原假设是其符合正态分布,如果p值小于所选择的α水平,则拒绝零假设,如果p值大于所选择的α水平

2020-05-13 13:35:25 3186

原创 Scala实现:KD-Tree(k-dimensional tree)

Scala实现:KD-Tree(k-dimensional tree)kd-tree是一种分割k维数据空间的数据结构。主要应用于多维空间数据的搜索,经常使用在SIFT、KNN等多维数据搜索的场景中,以KNN(K近邻)为例,使用线性搜索的方式效率低下,k-d树本质是对多维空间的划分,其每个节点都为k维点的二叉树kd-tree,因此可以大大提高搜索效率。KD-Tree的构建步骤:上述文字引自李...

2019-11-27 22:32:15 644

原创 已知一点经纬度及与另一点距离和航向,求另一点经纬度

已知一点经纬度及与另一点距离和航向,求另一点经纬度 /** * 已知一点经纬度及与另一点距离和航向,求另一点经纬度 * * @param lon 已知一点的经度 * @param lat 已知一点的纬度 * @param brng 已知一点与另一点的方向 (角度) * @param dist 已知一点与另一点的距离 :...

2019-11-14 22:53:49 3525

原创 Spark 本地连接OSS

Spark 本地连接OSS1. 对象存储 OSS阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。在使用Hadoop和Spark及其周边系统来处理和分析自己的数据时,则需要创建阿里云的E-MapReduce集群进行处理。但是有时候,我们需要在本地环境下对程序进行调试,所以 本地的Spark环境能连接OSS...

2019-10-28 22:13:47 2077 1

原创 Scala实现DP(道格拉斯-普克)算法

Scala实现DP(道格拉斯-普克)算法DP算法介绍算法实现scala实现// 创建一个Point类case class Point(x: Double, y: Double)// 方法实现 def dp(pts: Seq[Point], tolerance: Double): Seq[Point] = { if (pts.size < 3) return p...

2019-10-07 20:08:39 250

原创 Flink实践: 异步IO

1.为什么需要异步IOflink在做实时处理时,有时候需要和外部数据交互,但是通常情况下这个交互过程是同步的,这样就会产生大量的等待时间;而异步操作可以在单个函数实例中同时处理多个请求,并且同时接收相应。这样等待时间就平均分摊到了多个请求上,大大减少了请求的等待时长,可以提高实时处理的吞吐量。2.使用flink异步IO的先决条件需要所连接的数据库支持异步客户端在没有异步客户端的情况下,...

2019-08-14 23:15:36 1007

原创 大数据之统计学基础(二):随机变量及其概率分布

随机变量及其概率分布随机变量(r.v)是研究随机试验中的一串事件:比如掷一颗骰子,用X表示骰子的点数,由于X的取值我们无法确定,所以称X是一个随机变量,随机变量的取值随机会而定。1.随机变量的类型:1.1离散型:1.1.1 离散型r.v.X :离散型 r.v.X取有限或可数多个值:离散型随机变量的分布 (1)P(X=xk)=Pk  k=1,2,3...nP(X...

2019-08-06 21:08:12 2297

原创 Spark DataFrame中rollup和cube使用

Spark DataFrame中rollup和cube使用我们平时在做报表的时候,经常会有各种分维度的汇总计算,在spark中我们最常用的就是groupBy操作,groupBy就是按照给定的字段名分组,后面接sum、count、avg等聚合操作;在spark中也提供了rollup、cube这样的分组函数,接下来本文就以一个实例展示一下这两个函数的作用。我们先来看个需求:下面的表是某公司最近两年...

2019-07-28 20:06:54 906

原创 大数据之统计学基础(一) -- 描述统计

描述统计1.描述数据水平的统计量平均数(平均数反映了一组数的平均水平,平均数会受到极端值的影响),在计算时一般使用算术平均数:算术平均数  xˉ=∑i=1nxin算术平均数 \ \ \bar{x} = {\displaystyle\sum_{i=1}^nx_i \over n}算术平均数  xˉ=ni=1∑n​xi​​分位数:四分位数、中位数(...

2019-07-21 17:37:13 1428

原创 Scala实现机器学习中常用的相识度和距离计算

在机器学习和人工智能领域,距离(distance)、相似度(similarity)是经常出现的基本概念,关于距离和相似度度量的方法也多种多样,本文将总结一些常用的距离计算方法:欧氏距离d=(xi−yi)2 d = \sqrt{(x_i-y_i)^2} d=(xi​−yi​)2​在二维平面即是两点间的直线距离,是最常用的距离度量的方法之一: /** * * @param p...

2019-07-13 16:03:56 830

原创 Flink SQL 自定义UDAF

Flink SQL 自定义UDAF创建一个数据源class udafSource extends RichSourceFunction[Double] { override def run(ctx: SourceFunction.SourceContext[Double]) = { while (true) { val d = scala.math.random...

2019-07-08 00:12:09 3252 1

原创 Flink Keyed State实践:实现蒙特卡洛模拟求Pi

flink中的状态分为两类:Keyed State、Operator State;Keyed State是只能定义在KeyedStream的状态, 每一类状态都有 Managed State和Raw state两种托管方式;flink中内置了以下几种托管的状态:ValueState<T>:单值状态ListState<T>:多值状态ReducingState<T...

2019-06-28 22:45:34 437

原创 Flink 实践:侧输出

什么是侧输出在flink处理数据流时,我们经常会遇到这样的情况:在处理一个数据源时,往往需要将该源中的不同类型的数据做分割处理,如果使用 filter算子对数据源进行筛选分割的话,势必会造成数据流的多次复制,造成不必要的性能浪费;flink中的侧输出就是将数据流进行分割,而不对流进行复制的一种分流机制。flink的侧输出的另一个作用就是对延时迟到的数据进行处理,这样就可以不必丢弃迟到的数据。侧...

2019-06-14 23:09:23 5606

原创 Spark实现高斯朴素贝叶斯

Spark实现高斯朴素贝叶斯import breeze.stats.distributions.Gaussianimport org.apache.spark.ml.feature.VectorAssemblerimport org.apache.spark.ml.linalg.DenseVectorimport org.apache.spark.sql.SparkSessionimpo...

2019-06-07 23:40:43 395

原创 Flink初体验 -- Word Count

Flink初体验 – Word Countobject WordCount { def main(args: Array[String]): Unit = { /** * flink 的运行模型 * 1.DataSource * 2.Transformation * 3.DataSink */ // 获取环境,类...

2019-05-31 23:34:21 186

原创 Flink:时间与窗口

Flink学习笔记:时间与窗口一 时间在flink中定义了三类时间:事件时间(Event Time):即事件实际发生的时间。处理时间(Processing Time):事件被处理的时间。进入时间(Ingestion Time):事件进入流处理框架的时间下图很好的说明了三种时间的区别与联系其中时间时间和处理时间是比较常用,根据应用程序的不同以及结果准确性要求可以定义不同的时间,...

2019-05-28 22:17:46 4709 2

原创 Spark实现Canopy聚类算法

Spark实现Canopy聚类算法为什么需要Canopy算法Canopy算法一般是为其他聚类算法的一种聚类方法,常用的聚类如 K-means 等聚类算法都需要事先k值(即聚类个数),并且会随机选择k个初始聚类中心。这种实现指定的k和随机初始化的聚类中心不仅会降低聚类算法的效率,而且得到的结果也可能是局部最优的。Canopy算法就可以解决以上问题。Canopy算法的步骤Canopy算法的核心...

2019-05-21 23:01:16 1186

原创 flink自定义source与自定义sink

flink自定义source与自定义sink

2019-05-06 23:39:36 7160 2

原创 Flink实现高斯朴素贝叶斯

Flink实现高斯朴素贝叶斯在之前的文章中提到了多项式的朴素贝叶斯,在spark的ML里也实现了多项式的朴素贝叶斯和伯努利朴素贝叶斯,在实际情况当中我们处理的变量除了离散型,还有连续型。在对这类数据使用朴素贝叶斯的时候,我们通常会假定变量服从高斯分布。然后再进行概率计算。Flink代码实现在这里,使用的数据集是鸢尾花数据集// 创建一个鸢尾花数据类/** * Created by ...

2019-04-27 23:59:40 615

原创 CH2_(扩展)线性感知机算法(Pocket PLA)及其Spark实现

Spark 实现优化的线性感知机算法:Pocket PLAimport breeze.linalg.{DenseVector =&amp;gt; densevector}import org.apache.spark.ml.feature.VectorAssemblerimport org.apache.spark.ml.linalg.DenseVectorimport org.apache.sp...

2019-03-16 21:56:00 365 2

原创 判别三连之三:Spark 分布式实现贝叶斯判别

Spark 分布式实现贝叶斯判别贝叶斯公式假设事件B1,B2...Bn是样本空间Ω的一个分割,且他们各自的概率为P(B1),P(B2),P(Bn)假设事件 B_1,B_2...B_n 是样本空间Ω的一个分割,且他们各自的概率为P(B_1),P(B_2),P(B_n)假设事件B1​,B2​...Bn​是样本空间Ω的一个分割,且他们各自的概率为P(B1​),P(B2​),P(Bn​)A是事件Ω...

2019-03-03 18:16:41 510

原创 判别三连之二:Spark 分布式实现距离判别分析

Spark 分布式实现距离判别分析距离判别设有两个总体G1,G2,从第一个总体抽取n个样本,从第二个总体中抽取m个样本,每个样本都有p个测量指标。取任一样本实测指标为X=(x1,x2,……xp)’,分别计算X到两个总体的距离D1,D2,按距离最近准则判别归类。距离计算公式(马氏距离):判别公式:数据展示与说明某商场从市场随机抽取20中品牌的电视机进行调查,其中13中畅销,7种滞销...

2019-02-27 22:23:35 432

原创 判别三连之一:Spark 分布式实现线性判别分析(二分类问题)

Spark 分布式实现线性判别分析(二分类问题)线性判别分析(LDA)线性判别分析(linear discriminant analysis)是一种经典的线性学习方法,在二分类问题上最早由Fisher在1936年提出,亦称Fisher线性判别。其中心思想是:将样本集投影到一条直线上,使投影到直线上的同类样本之间差异尽可能的小;使不同类样本间的差异尽可能的大。线性判别分析是一种有监督的分类学习方...

2019-02-24 23:45:19 782

原创 Spark DataFrame 用户自定义(聚合)函数

Spark Sql 自定义函数在Spark中,自定义函数可以分为两种:UDF(User-Defined-Function),即最基本的自定义函数。类似 lit、sqrt之类的函数,数对每一条数据处理。输入和输出是一对一的关系。UDAF(User- Defined Aggregation Funcation),用户自定义聚合函数。类似sum、count之类的函数,是对数据按一定规则分组之后的...

2019-01-21 21:26:31 5576 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除