会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Syso(Alt+/)Cjs
博客园
首页
新随笔
联系
管理
订阅
09 2019 档案
LR与Sigmod函数
摘要:在使用LR时,经常用Sigmod函数来表示一个概率,为什么LR可以使用Sigmod函数呢? 首先,LR的假设只有一个,就是两个类别的特征服从均值不等、方差相等的高斯分布。为什么假设它服从高斯分布?一方面,高斯分布容易理解;另一方面,从信息论的角度看,当均值和方差已知时,高斯分布是熵最大的分布。当熵分
阅读全文
posted @
2019-09-28 08:23
KamShing
阅读(417)
评论(0)
推荐(0)
相似度计算
摘要:很多时候,相似度可以理解为两样物体的距离,相似度计算在数据挖掘和推荐系统中有着广泛的应用场景。例如: CF协同过滤算法中,可以利用相似度计算用户之间(User-Based)或者物品之间(Item-Based)的相似度; 在利用k-means进行聚类时,判断个体所属类别,可以使用相似度计算公式计算个体
阅读全文
posted @
2019-09-28 07:41
KamShing
阅读(1175)
评论(0)
推荐(0)
K最近邻算法
摘要:一、原理 K最近邻算法(K-Nearest Neighbor, KNN)是最基本的分类算法,其基本原理是:从最近的K个邻居(样本)中,选择出现次数最多的类别作为判定类别。K最近邻算法可以理解为是一个分类算法,常用于标签的预测,如性别。 实现KNN算法核心的一般思路: K值的选择是选择统计的样本数量,
阅读全文
posted @
2019-09-27 09:19
KamShing
阅读(1958)
评论(0)
推荐(0)
数据离散化与Python实现
摘要:一、原理 数据离散化(也称,数据分组),指将连续的数据进行分组,使其变为一段离散化的区间。 根据离散化过程中是否考虑类别属性,可以将离散化算法分为:有监督算法和无监督算法。事实证明,由于有监督算法充分利用了类别属性的信息,所以再分类中能获得较高的正确率。 常用的数据离散化方法: 等宽分组 等频分组
阅读全文
posted @
2019-09-27 08:31
KamShing
阅读(4967)
评论(2)
推荐(0)
数据标准化与Python实现
摘要:一、原理 数据标准化(Normalization):将数据按照一定比例进行缩放,使其落入到一个特定的小区间。 数据标准化的类别: Min-Max标准化 Z-Score标准化(Standard Score,标准分数) 小数定标(Decimal scaling)标准化 均值归一化 向量归一化 指数转换
阅读全文
posted @
2019-09-27 07:58
KamShing
阅读(5141)
评论(0)
推荐(0)
Item协同过滤(基于Python实现)
摘要:在众多召回策略里面,基于Item与基于User(可参考:https://www.cnblogs.com/SysoCjs/p/11466424.html)在实现上非常相似。所以这里使用了跟基于User协同过滤的数据u.data。 实现原理: 区别于User,先根据User已经购买过,或者评价过的Ite
阅读全文
posted @
2019-09-05 16:16
KamShing
阅读(3486)
评论(0)
推荐(0)
Spark实现TF-IDF——文本相似度计算
摘要:在Spark1.2之后,Spark自带实现TF-IDF接口,只要直接调用就可以,但实际上,Spark自带的词典大小设置较于古板,如果设置小了,则导致无法计算,如果设置大了,Driver端回收数据的时候,容易发生OOM,所以更多时候都是自己根据实际情况手动实现TF-IDF。不过,在本篇文章中,两种方式
阅读全文
posted @
2019-09-05 16:10
KamShing
阅读(2666)
评论(0)
推荐(0)
User协同过滤(基于Spark实现)
摘要:项目地址:https://github.com/ChanKamShing/UserCF_Spark.git 推荐系统的作业流程: 召回/match(推荐引擎)-> 物品候选集 -> 过滤 -> 排序 -> 策略(保证结果多样性) -> 推荐list 协同过滤CF属于第一阶段,我们常常称之为“推荐引擎
阅读全文
posted @
2019-09-05 15:45
KamShing
阅读(753)
评论(6)
推荐(0)
User协同过滤(基于Python实现)
摘要:项目地址:https://github.com/ChanKamShing/UserCF_python.git 推荐系统的作业流程: 召回/match(推荐引擎)-> 物品候选集 -> 过滤 -> 排序 -> 策略(保证结果多样性) -> 推荐list 协同过滤CF属于第一阶段,我们常常称之为“推荐引
阅读全文
posted @
2019-09-05 15:35
KamShing
阅读(978)
评论(0)
推荐(0)
Spark存储原理——数据写入过程
摘要:Spark数据的写入过程的入口点位doPutIterator方法。下面是一些方法的调用关系图: 在该方法中,根据数据是否缓存到内存中处理。如果不缓存到内存中,则调用BlockManager的putIterator方法直接存储到磁盘中;如果缓存到内存中,则先判断数据存储级别是否对数据进行了反序列化操作
阅读全文
posted @
2019-09-05 15:25
KamShing
阅读(1600)
评论(0)
推荐(0)
Flink的WaterMark,及demo实例
摘要:实际生产中,由于各种原因,导致事件创建时间与处理时间不一致,收集的规定对实时推荐有较大的影响。所以一般情况时选取创建时间,然后事先创建flink的时间窗口。但是问题来了,如何保证这个窗口的时间内所有事件都到齐了?这个时候就可以设置水位线(waterMark)。 概念:支持基于时间窗口操作,由于事件的
阅读全文
posted @
2019-09-05 15:22
KamShing
阅读(2473)
评论(0)
推荐(0)
Spark的TaskSetManager(任务管理器)的排序算法
摘要:Spark作业执行中,有一个步骤是给任务进行资源分配,实际上这些任务由一些任务管理器TaskSetManager负责管理,资源分配过程中,会先根据某种排序算法排好序,然后根据就近原则给任务进行资源分配。那么关于TaskSetManager的排序是根据哪个算法呢?现在就来介绍。 排序算法由两种调度策略
阅读全文
posted @
2019-09-05 15:19
KamShing
阅读(676)
评论(0)
推荐(0)
SparkSql中,关于Hive表与Parquet文件的Schema转化兼容
摘要:从表Schema处理角度对比Hive和Parquet,两者主要的区别: Hive区分大小写,Parquet不区分大小写;Hive允许所有的列为空,而Parquet不允许所有列为空;基于上述两点区别,在进行Hive metastore Parquet转换为SpqrkSql Parquet时,需要将两者
阅读全文
posted @
2019-09-05 15:17
KamShing
阅读(1237)
评论(0)
推荐(0)
SparkSQL自定义强类型聚合函数
摘要:自定义强类型聚合函数跟自定义无类型聚合函数的操作类似,相对的,实现自定义强类型聚合函数则要继承org.apache.spark.sql.expressions.Aggregator。强类型的优点在于:其内部与特定数据集紧密结合,增强了紧密型、安全性,但由于其紧凑的特性,降低了适用性。 准备emplo
阅读全文
posted @
2019-09-05 15:14
KamShing
阅读(556)
评论(0)
推荐(0)
SparkSQL自定义无类型聚合函数
摘要:准备数据: 一、定义自定义无类型聚合函数 想要自定义无类型聚合函数,那必须得继承org.spark.sql.expressions.UserDefinedAggregateFunction,然后重写父类得抽象变量和成员方法。 二、使用自定义无类型聚合函数 输出结果:
阅读全文
posted @
2019-09-05 15:09
KamShing
阅读(286)
评论(0)
推荐(0)
RDD转DataFrame常用的两种方式
摘要:随着Spark1.4.x的更新,Spark提供更高阶的对象DataFrame,提供了比RDD更丰富的API操作,同时也支持RDD转DataFrame(下面简称“DF”),但是要注意,不是任意类型对象组成的RDD都可以转换成DF,,只有当组成RDD[T]的每一个T对象内部具有鲜明的字段结构时,才能隐式
阅读全文
posted @
2019-09-05 15:05
KamShing
阅读(6101)
评论(0)
推荐(0)
Spark作业执行原理(六)——获取执行结果
摘要:对于Executor的计算结果,会根据结果的大小使用不同的处理策略: 任务执行完成之后,TaskRunner将任务的执行结果发送给DriverEndpoint,DriverEndpoint接收到信息后,交给TaskSchedulerImpl的statusUpdate方法进行处理,该方法根据不同的任务
阅读全文
posted @
2019-09-05 15:01
KamShing
阅读(694)
评论(0)
推荐(0)
公告