8-28决定参加一下这个千万条的数据处理任务,因为场景和自己做过的一个回归分析预测差不多,第一天开始在小规模的数据上做准备工作。

第二次大修改版本

date 20160829 星期一

原始数据处理,得到用户粉丝关系,微博转发在每个时间段的量,微博转发的总体深度 下一阶段目标,建立模型,实现基于时间序列的预测

 

第三次大修改版本

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和某个回归算法的更多相关文章

  1. 深度学习基础-基于Numpy的多层前馈神经网络(FFN)的构建和反向传播训练

    本文是深度学习入门: 基于Python的实现.神经网络与深度学习(NNDL)以及花书的读书笔记.本文将以多分类任务为例,介绍多层的前馈神经网络(Feed Forward Networks,FFN)加上 ...

  2. 机器学习(ML)八之正向传播、反向传播和计算图,及数值稳定性和模型初始化

    正向传播 正向传播的计算图 通常绘制计算图来可视化运算符和变量在计算中的依赖关系.下图绘制了本节中样例模型正向传播的计算图,其中左下角是输入,右上角是输出.可以看到,图中箭头方向大多是向右和向上,其中 ...

  3. 小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播

    下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) ...

  4. 基于 Keras 用深度学习预测时间序列

    目录 基于 Keras 用深度学习预测时间序列 问题描述 多层感知机回归 多层感知机回归结合"窗口法" 改进方向 扩展阅读 本文主要参考了 Jason Brownlee 的博文 T ...

  5. UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)

    UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...

  6. DDos攻击,使用深度学习中 栈式自编码的算法

    转自:http://www.airghc.top/2016/11/10/Dection-DDos/ 最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容论 ...

  7. 股票价格涨跌预测—基于KNN分类器

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  8. C++从零实现简单深度神经网络(基于OpenCV)

    代码地址如下:http://www.demodashi.com/demo/11138.html 一.准备工作 需要准备什么环境 需要安装有Visual Studio并且配置了OpenCV.能够使用Op ...

  9. 掌握Spark机器学习库-07.14-保序回归算法实现房价预测

    数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...

随机推荐

  1. shell expr 文件扩展名判断 整数判断

    expr "text.sh" : ".*\.sh" &>/dev/null && echo "yes" ||e ...

  2. 【python cookbook】【字符串与文本】15.给字符串中的变量名做插值处理

    问题:想创建一个字符串,其中嵌入的变量名称会以变量的字符串值形式替换掉 解决方法:str.format().str.format_map() >>> s = '{name} has ...

  3. Install DBD::mysql for Perl in XAMPP in Mac , solving errors

    我不知道 why,在 Mac 安装 DBI::mysql 总会报错 我为了给 cgi-bin 添加 mysql-perl 数据库支持,也是够麻烦的 make sure that mysql and m ...

  4. Javascript Window Location

    window.location 对象在编写时可不使用 window 这个前缀. URL : 统一资源定位符 (Uniform Resource Locator) 说明: 完整的URL示例:scheme ...

  5. diff 文件比较

    测试数据: [xiluhua@vm-xiluhua][~]$ cat msn.txt aaa bbb bbb ccc ccc ddd bbb eee aaa ccc bbb sss [xiluhua@ ...

  6. ci中简单实用的权限管理

    实用的权限管理 对多数网站来说,使用完整的rbac权限管理杀鸡用牛刀绝对的吃力不讨好,因为我们只是简单分角色然后对角色进行管理行使其相对于的角色赋予的权限; 在实际的开发中用位运算来对权限进行验证是十 ...

  7. C#的OpenFileDialog和SaveFileDialog的常见用法(转)

    OpenFileDialog openFileDialog1 = new OpenFileDialog();            openFileDialog1.InitialDirectory = ...

  8. xcode4.3 完成输入后 点击背景关闭键盘

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ [self.view endEditing:YES];} 把这个复制到 ...

  9. C++的几种强制类型转换

    有时我们希望显式地将对象强制类型转换成另外一种类型.例如,如果想在下面的代码中执行浮点数除法: int i, j; double slope = i / j; 就要使用某种方法将i和/或j显式地转换成 ...

  10. 使用selenium来完成的例子

    地址:http://www.tuicool.com/articles/rimeey