var text_file sc.textfile( /input)
var word text_file.flatmap(line line.split( )).map(word (word,1)).reduceByKey(_ _)
var out word.count()
统计有多少个不同的单词
2.推荐系统衡量指标
离线评估方法
holdout评估 70%训练集 10%验证集 20%测试集
交叉检验 k-fold交叉验证 一般取10份 然后轮流做训练集 测试集留一验证 每次留下1个样本作为验证集 其余所有样本作为测试集
自助法 不断进行有放回采样作为测试集 没采到的最后作为测试集 占比30% 左右
离线评估的主要指标 准确率 分类准确率是指分类正确的样本占总样本个数的比例 精确率和召回率精确率 Precision 是分类正确的正样本个数占分类器判定为正样本的样本个数的比例
召回率 Recall 是分类正确的正样本个数占真正正样本个数的比例
F1-score进行调和 也叫F-measure 定义为 1/f 1/p 1/r
均方根误差如果存在个别偏离程度非常大的离群点 那么即使离群点的数量非常少 也会让RMSE指标变得很差
MAPE:
对数损失函数
LogLoss 在一个二分类问题中 LogLoss定义为
直接评估推荐序列的离线指标:
在某一阈值下 模型将大于该阈值的结果判定为正样本 将小于该阈值的结果判定为负样本时 排序结果对应的召回率和精确率
ROC曲线「受试者工作特征曲线」
ROC曲线的横坐标时 False Posotive Rate FPR 假阳性率 纵坐标时True Positive Rate TPR 真阳性率
平均精度均值AP的计算只取正样本处的precision进行平均 即 AP (1/1 2/4 3/5 4/6) 0.6917
除了上述介绍的几种评估指标 推荐系统的评估指标还包括
归一化折损累计收益 Normalized Discounted Cumulative Gain NDCG
覆盖率 Coverage
多样性 diversity
更接近线上环境的离线评估方法-Replay
动态离线评估方法先根据样本产生时间对测试样本由早到晚进行排序 再用模型根据样本时间依次进行预测 在模型更新的时间点上 模型需要增量学习更新时间点前的测试样本 更新后继续进行后续的评估。
A/B测试与线上评估注意样本等独立性和无偏性 同一用户在测试的全程中只能被分到同一个桶中。
层与层之间的流量正交 即层与层之间的独立实验的流量是正交的 即实验中每组的流量穿越该层后 都会被再次随机打散 且均匀的分布再下层的每个实验中
同层之间的流量互斥 即
同层之间进行多组A/B测试 不同测试之间的流量是不重叠的
一组A/B测试中实验组和对照组的流量是不重叠的 是互斥的
电商推荐场景
抖音推荐



