微博传播数量和传播深度的预测--基于pyspark和某个回归算法
8-28决定参加一下这个千万条的数据处理任务,因为场景和自己做过的一个回归分析预测差不多,第一天开始在小规模的数据上做准备工作。
第三次大修改版本
date 20160830 星期二
将这些运算转移到Linux平台上,因为有的迭代完全让我的电脑的内存受不了 这次版本的主要的目的是计算出某个微博的深度的时间序列的变化
第四次大修改版本
date 20160831 星期三
从原始数据提取出随着时间变化的序列的深度和转发的次数的测试工作完成了 本次修改两个任务:第一将函数按照两个部分分别整合起来; 第二将采样数据替换成原始测试数据跑一遍,完成基本的数据处理 下一次版本的主要目的是,通过这些已知的关系,搭建数据预测的模型,用训练数据训练,用测试数据测试,然后修正参数,得到最好的模型
第五次大修改版本
date 20160901 星期四
今天上午遇到的严重的问题是内存不够,因为我把计算过程中,尤其是初始数据的RDD也缓存起来了,这很大,所以不够用了。 更改只缓存重要的结果,例如,时间序列的,转发次数和转发深度这一些RDD,这样程序差不多能完全执行下来。 只是第二个计算深度的版本还是有些问题,需要在以后用到的时候进一步修改,尤其是针对特定的时间段,谁在转发,转发的人最大的粉丝个数。
这个版本主要解决的问题是将计算的结果保存到文件中,方便回归模型调用文件中处理好的数据进行训练和预测。 首先计划实现某一个时间段的预测,其他的整体的预测还是以后再做。
第六次大修改版本
date 20160901 星期四
今天下午最大的收货是看到了曙光
但是成功距离我以前想的还是有一段距离的 本次版本将完整计算出所有需要的数据,保存到文件中,希望今天能完成
第七次大修改版本
date 20160902 星期五
今天多计算了几个需要的参数,并且优化了深度和广度的生成方式。 但是有一个参数生成失败,而且深度获取有严重的bug是算法的问题。这个还没想到好的方法改。 今天还是没能下手做第一个预测。
第八次大修改版本
date 20160905星期一
今天做了一个小突破,覆盖人数算出来了 今天剩下的目标是,重新抹平生成的数据 然后用这个程序跑测试集
第九次大修改版本
date 20160906 星期二
把程序简化了很多,函数关系互相的顺序调用,这样关系清楚了,也减少不必要的计算量。 对训练集和测试机分别生成四类文件,微博id对应的粉丝数,微博id对应的转发量,微博id对应的深度,微博id对应的覆盖人数
第十次大修改版本
date 20160907 星期三
昨天有一些需要的数据没完全生成,因为vsphere中的ubuntu磁盘不够了,还没搞明白怎么扩展。任务丢失就失败。 但是部分的数据生成了。够用。
今天首先根据时段15预测时间段16的时候的数据,遇到一个致命的问题,特征向量和label加一起用labeledpoint时候得到超出数组错误。 因为模型需要的是sprasevector而我传入的是densevector,而这个转换现在spark好像不支持。 从mllib转向新的ml中的模型,还是这个错误。label是非负数,但是却出现了负值索引的数组。这一个预测做不出来,就没法批量下手呀。。
第十一次大修改版本
date 20160908 星期四
给虚拟机扩了30G但是交换区好像要手动启动了,否则会很慢。。 仔细研究了一下模型对数据的请求,打算吧特征向量转化为libsvm格式,方便模型自己加label。
第十二次大修改版本
date 20160909 星期五
第一次做出来时间段15的转发次数,下面想办法做延伸,怎么搞292个时间段的预测。
第十三次大修改版本
date 201609012 星期一
委屈求全的求出了所有时段的预测结果。现在特征向量有点匮乏。解决了两个主要的问题:
第一:k-v分裂之后,想在zip的时候发现zip有两个要求不仅长度相等,分区也相同才可以。所以迂回一下,首先分别zipWithIndex然后翻转k-v然后pire RDD取join再将values()map出k-v就可以了。
第二个:拼接字符串,看似很简单,加上循环就比较操蛋了。学会了一个join函数,python的join函数可以对数组批量连接。
第十四次大修改版本
date 20160913 星期二
不管其他问题首先计算出第一版的结果:
用生成的预测结果文件取出来加上key然后join太费劲,288个迭代起来,没完没了。 以
前就是因为这个弊端,选择了生成单独的文件。
所以捣鼓一上午之后选择shell脚本生成需要的结果。 将表头和数据分别黏贴起来。修改了几个小小的bug。 最终提交了一个版本的结果。
现在的问题:
原始数据有改动,但是这个影响不大。
预测结果排序有问题,这个可以解决,当时没解决。
还有一个比较困难的问题是深度生成的算法还是有硬伤,后面时段的深度可能比前面的时段的深度浅。
待续
微博传播数量和传播深度的预测--基于pyspark和某个回归算法的更多相关文章
- 深度学习基础-基于Numpy的多层前馈神经网络(FFN)的构建和反向传播训练
本文是深度学习入门: 基于Python的实现.神经网络与深度学习(NNDL)以及花书的读书笔记.本文将以多分类任务为例,介绍多层的前馈神经网络(Feed Forward Networks,FFN)加上 ...
- 机器学习(ML)八之正向传播、反向传播和计算图,及数值稳定性和模型初始化
正向传播 正向传播的计算图 通常绘制计算图来可视化运算符和变量在计算中的依赖关系.下图绘制了本节中样例模型正向传播的计算图,其中左下角是输入,右上角是输出.可以看到,图中箭头方向大多是向右和向上,其中 ...
- 小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播
下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) ...
- 基于 Keras 用深度学习预测时间序列
目录 基于 Keras 用深度学习预测时间序列 问题描述 多层感知机回归 多层感知机回归结合"窗口法" 改进方向 扩展阅读 本文主要参考了 Jason Brownlee 的博文 T ...
- UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)
UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...
- DDos攻击,使用深度学习中 栈式自编码的算法
转自:http://www.airghc.top/2016/11/10/Dection-DDos/ 最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容论 ...
- 股票价格涨跌预测—基于KNN分类器
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- C++从零实现简单深度神经网络(基于OpenCV)
代码地址如下:http://www.demodashi.com/demo/11138.html 一.准备工作 需要准备什么环境 需要安装有Visual Studio并且配置了OpenCV.能够使用Op ...
- 掌握Spark机器学习库-07.14-保序回归算法实现房价预测
数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...
随机推荐
- scrapy学习记录
scrapy是一个用来爬取一个或多个网站的数据,提取数据的应用框架.下载过程非常复杂,而且会遇到各种问题.所以写个博客来记录下. 安装好python2.7之后,就可以开始.安装scrapy前还需要安装 ...
- iOS 警告窗口
- (IBAction)buttonPressed:(id)sender { NSDate *date=self.datePicker.date; NSString *messag ...
- linux 下安装gsl
访问 http://ftp.club.cc.cmu.edu/pub/gnu/gsl/下载最新版本的,现在最新的是gsl-1.16.tar.gz,已经是2013年更新的了.然后下载 安装 简便的安装过程 ...
- 正确配置Linux系统ulimit值的方法【转】
转自:http://www.cnblogs.com/ibook360/archive/2012/05/11/2495405.html 在Linux下面部署应用的时候,有时候会遇上Socket/File ...
- java多线程中的生产者与消费者之等待唤醒机制@Version2.0
二.生产者消费者模式的学生类成员变量生产与消费demo, @Version2.0 在学生类中添加同步方法:synchronized get()消费者,synchronized set()生产者 最终版 ...
- ectouch第十一讲 之 ECTouch 菜单里如何添加文章链接
1.首先在 ectouch 后台添加好文章分类和文章内容(具体添加方法很简单,这里就不再赘述),然后在菜单管理里添加导航如下(链接地址的获取方法参考步骤 2):2.文章分类列表 域名/mobile/i ...
- MS Sq l数据类型
一.nchar : 适用于西文字符,一个字符占一个字节. 二.char: 可以中文,一个字符占两个字节. 三.var :可变. 四.varchar.nvarchar . 所以一般来说,如果含有中文字符 ...
- 快速排序算法(Java)
快速排序算法的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另外一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序. class Parti ...
- extjs 中动态给gridpanel 复选框赋值
最近在搞extjs时需要动态根据数据给gridpanel的复选框赋值 网上看了很多 ,多不行,最后找到一个好使的方法 如下: RBACformPanel.getSelectionModel().sel ...
- hdu1024 Max Sum Plus Plus
动态规划,给定长度为n(≤1e6)的整数数组和整数m,选取m个连续且两两无交集的子区间,求所有方案中使得区间和最大的最大值. dp[i][j]表示结束位置(最后一个区间最后一个元素的位置)为i且选取区 ...