摘要:特点: 1.计数 有多少种方式走到右下角 有多少种方法选出K个数使得和是sum 2.求最大最小值 从左上角走到右小角路径的最大数字和 最长上升序列长度 3.求存在性 取石子游戏,先手是否获胜 能不能选出K个数字使得和是SUM
阅读全文
摘要:文件格式:Text文件,Json文件,Csv文件,Sequence文件,Object文件 文件系统:本地文件系统,HDFS,HBASE以及数据库 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkCont
阅读全文
摘要:只有key-value类型的rdd才有分区器 1 HashPartitioner 分区方法 HashPartitioner 是通过对 RDD中的key求取hash值,再对hash值对分区数partitions 取余数得到,如果余数<0,那么就取“余数+partitions”,作为该row对应的分区编
阅读全文
摘要:1. cache/persist Spark 中一个很重要的能力是将数据persisting持久化(或称为caching缓存),在多个操作间都可以访问这些持久化的数据。 当持久化一个 RDD 时,每个节点的其它分区都可以使用 RDD 在内存中进行计算,在该数据上的其他 action 操作将直接使用内
阅读全文
摘要:给定m行n列得网格,有一个机器人从左上角(0,0)出发,每一步可以向下或者向右走,问右多少种不同的方式走到右下角 原题:机器有多少种方式从左上角走到(m-1,n-1)子问题:状态:设f[i][j]为机器人有多少种方式从左上角走到(i,j)f[i][j]=f[i-1][j]+f[i]f[j-1]初始条
阅读全文
摘要:假设有 1 元, 3 元, 5 元的硬币若干(无限) , 现在需要凑出 11 元,问如何组合才能使硬币的数量最少? d(i) = d(j) + 1, j < i。通俗地讲,如果我们需要凑出 i 元,就在凑出 j 的结果上再加上某一个硬币就行了。 那这里我们加上的是哪个硬币呢。嗯,其实很简单,把每个硬
阅读全文
摘要:1. 01背包 1.1 题目 最基本的背包问题就是01背包问题(01 knapsack problem):一共有N件物品,第i(i从1开始)件物品的重量为w[i],价值为v[i]。在总重量不超过背包承载上限W的情况下,能够装入背包的最大价值是多少? 1.2 分析 如果采用暴力穷举的方式,每件物品都存
阅读全文
摘要:(1)基于L1惩罚项的模型 (2)主成分分析法(PCA) PCA是为了让映射后的样本具有最大的发散性;无监督的降维方法 from sklearn.decomposition import PCA #主成分分析法,返回降维后的数据 #参数n_components为主成分数目 PCA(n_compone
阅读全文
摘要:根据特征选择的形式又可以将特征选择方法分为3种: (1)Filter 1.1 方差选择法 使用方差选择法,先要计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。 from sklearn.feature_selection import VarianceThreshold #方差选择法,返回
阅读全文
摘要:map端数据倾斜:输入文件大小不一致 reduce端数据倾斜:partition不一致 小表要放在前面,大表放在后面 例如A表id=3有1条记录,B表id=3有10条记录。 首先读取v[0]发现是A表的记录,用了1次读取操作。然后再读取v[1]发现是B表的操作,这时v[0]和v[1]可以直接关联输出
阅读全文
摘要:任务划分 RDD任务切分中间分为:Application,Job,Stage,Task Application:初始化一个SparkContext就生成一个ApplicationJob:一个行动算子生成一个JobStage:根据RDD之间的依赖关系的不同将Job划分为不同的Stage,遇到一个宽依赖
阅读全文
摘要:序列化就是指将一个对象转化为二进制的byte流(注意,不是bit流),然后以文件的方式进行保存或通过网络传输,等待被反序列化读取出来。序列化常被用于数据存取和通信过程中。 Spark是分布式执行引擎,其核心抽象是弹性分布式数据集RDD,其代表了分布在不同节点的数据。 Spark的计算是在execut
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //map(func) object sampleRDD { def main(args: Array[String]): Unit =
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object reduceRDD { def main(args: Array[String]): Unit = { val conf:
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object KeyValueRDD { def main(args: Array[String]): Unit = { val con
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object cogroupRDD { def main(args: Array[String]): Unit = { val conf
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object joinRDD { def main(args: Array[String]): Unit = { val conf: S
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object KeyValueRDD { def main(args: Array[String]): Unit = { val con
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object kv2RDD { def main(args: Array[String]): Unit = { val conf: Sp
阅读全文
摘要:先来举个例子,我们要预测一家人对电子游戏的喜好程度,逐一给各人在电子游戏喜好程度上打分,如下图所示。 训练出了2棵树tree1和tree2,类似之前gbdt的原理,两棵树的结论累加起来便是最终的结论 所以小孩的预测分数就是两棵树中小孩所落到的结点的分数相加:2 + 0.9 = 2.9。爷爷的预测分数
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object kvRDD { def main(args: Array[String]): Unit = { val conf: Spa
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object UnionRDD { def main(args: Array[String]): Unit = { val conf:
阅读全文
摘要:行动算子 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object sortByRDD { def main(args: Array[String]): Unit = { val
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object zipRDD { def main(args: Array[String]): Unit = { val conf: Sp
阅读全文
摘要:可以将Logistic Regression看做是仅含有一层神经元的单层的神经网络。 1.简化的两层神经网络分析 1.2.从输入层到隐藏层 连接输入层和隐藏层的是W1和b1。由X计算得到H十分简单,就是矩阵运算: (1*50)=(1*2)*(2*50)+(1*50) 在设定隐藏层为50维(也可以理解
阅读全文
摘要:逻辑回归假设因变量 y 服从伯努利分布, 线性回归假设因变量 y 服从高斯分布。 对线性回归的结果做一个在函数g上的转换,可以变化为逻辑回归。这个函数g在逻辑回归中我们一般取为sigmoid函数,形式如下: 即当z趋于正无穷时,g(z)趋于1,而当z趋于负无穷时,g(z)趋于0,这非常适合于我们的分
阅读全文
摘要:正则化的目的是限制参数过多或者过大,避免模型更加复杂,容易发生过拟合。因此需要在目标函数添加一些额外的惩罚项,即正则项。 添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)。 L0范数惩罚:将其高阶部
阅读全文
摘要:Spark 中最基本的数据抽象是 RDD。 RDD:弹性分布式数据集 (Resilient Distributed DataSet)。 不可变,分区,并行 Spark的算子的分类 (1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。 Value数据类型
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object coalesceRDD { def main(args: Array[String]): Unit = { //本地模式
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object distinctRDD { def main(args: Array[String]): Unit = { //本地模式
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object filterRDD { def main(args: Array[String]): Unit = { //本地模式 va
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //按照传入函数的返回值进行分组,将相同key对应的值放入一个迭代器 object groupbyRDD { def main(args
阅读全文
摘要:import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} //glom的作用是将同一个分区里的元素合并到一个array里 object glomRDD { def main(args: Arra
阅读全文
摘要:对比结果2与结果3,很容易得出结论:map函数后,RDD的值为 Array(Array("a","b"),Array("c","d"),Array("e","f"))flatMap函数处理后,RDD的值为 Array("a","b","c","d","e","f")即最终可以认为,flatMap会将
阅读全文
摘要:import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDD //map(func) object rdd2 { def main(args: Array[String]): Unit = { //
阅读全文
摘要:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc
阅读全文
摘要:(1) (2) (3) (4) (5) (6)无法创建java文件 (7) (8)
阅读全文
摘要:apache-maven-3.6.3\conf\settings.xml <localRepository>E:/software/repository</localRepository> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</m
阅读全文
摘要:(1)Adaboost 最优的w 处理的粒度是更新参数w,使得损失函数L(y,f(x))最小 (2)GBDT 最优的函数F(X) 处理粒度是更新函数F(X),使得损失函数L(y,F(X))最小。 GBDT分为两种: 都是迭代回归树 每棵树都在学习前N-1棵树尚存的不足 都是累加每颗树结果作为最终结果
阅读全文
摘要:梯度下降算法是求解最优化问题 梯度下降是优化一个损失函数L(y,f(x)),处理的粒度是更新参数w,使得最后的损失函数最小
阅读全文
摘要:(1)决策树 1 决策树算法? 2 什么是熵? 信息熵公式 3 信息增益公式及意义? 4 决策树处理连续值的方法 把连续值变量进行排序成(a1,a2,…an)再从(a1,a2)区间里取中位点A1作为分界来分裂数据,算信息增益率/基尼指数,从(a2,a3)区间里取中位点A2作为分界来分裂数据,算信息增
阅读全文
摘要:分类与回归两种类型的问题 (1)主体思想:随机森林利用随机的方式将许多决策树组合成一个森林,每个决策树在分类的时候投票决定测试样本的最终类别。 1. 随机选择样本 给定一个训练样本集,数量为N,我们使用有放回采样到N个样本,构成一个新的训练集。 2. 随机选择特征 总量为M的特征向量中,随机选择m个
阅读全文
摘要:分类与回归两种类型的问题 adaptive(自适应) 损失函数:指数损失函数 AdaBoost:是多个分类器的组合,共同决定预测结果。而且适用数值型和标称型(类别)数据。 对于训练数据中的每个样本数据,赋予其一个权重,这些样本权重向量D,初始时权重都化为相等值。Di=1/样本中数据个数 在训练数据上
阅读全文
摘要:(1)分类问题评估指标: 准确率 - Accuracy 精确率(差准率)- Precision 召回率(查全率)- Recall F1分数 KS曲线 ROC曲线 AUC曲线 (2)回归问题评估指标: MAE/MSE 准确率 Accuracy = (TP+TN)/(TP+TN+FP+FN) 精确率 P
阅读全文
摘要:(1)业务中的模型中会遇到的问题 模型效果不好 训练集效果好,跨时间测试效果不好 跨时间测试效果也好,上线之后效果不好(一般是线上线下变量逻辑不一致) 上线之后效果还好,几周之后分数分布开始下滑(有部分变量跨时间测试不好) 一两个月内都比较稳定,突然分数分布骤降(模型因该没问题,关注外部环境) 没有
阅读全文
摘要:偏差bias 偏差是指预测结果与真实值之间的差异,排除噪声的影响,偏差更多的是针对某个模型输出的样本误差 偏差是模型无法准确表达数据关系导致,模型拟合度不够导致,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型; 偏差不是随机产生的,可通过一定的特征工程进行预测; 方差v
阅读全文
摘要:稳定度指标(population stability index ,PSI) PSI = sum((实际占比-预期占比)/ln(实际占比/预期占比)) 小于0.1 时候模型稳定性很高, 0.1-0.2 一般,需要进一步研究 大于0.2 模型稳定性差,建议修复。 PSI实际应用范例: 1)样本外测试
阅读全文