情景:在机器学习中构建模型更重要的是特征,特征又分为很多种,原始基本特征、统计特征、偏好特征等等,今天想记录一下统计特征,假如给你一个需求让你统计某一天内这些人一天内看过别人朋友圈的次数,估计你会统计,但是让你统计这一天内的人在三天、七天、十五天、三十天内看过别人朋友圈的数量作为几个特征,想过怎么弄么,给大家分享一个我做过的方法

1、把每一天的数据,例如这一天这些人看过别人朋友圈多少次

2、建立hive表,按天分区

3、把每一天的数据load到hive中,其它的办法也可以

4、之后按照正常的统计逻辑操作就可以啦,分享一下自己写的部分代码吧,写的有点low~

object ownLookownphoto {def main(args: Array[String]): Unit = {val date = List("20190601","20190602","20190603","20190604","20190605")for(item <- date){merge(item)}}def merge(date:String): Unit ={val statis_feature = acquire_statis_feature(date)val next_date = acquireDay(date,1)statis_feature.write.format("csv").option("header","true").save("file_path")}def acquire_statis_feature(date:String): DataFrame ={val result_3 = acquire_day_feature(date,3)val result_7 = acquire_day_feature(date,7)val result_15 = acquire_day_feature(date,15)val result_30 = acquire_day_feature(date,30)val result = result_3.join(result_7,Seq("uid"),"outer").join(result_15,Seq("uid"),"outer").join(result_30,Seq("uid"),"outer")result}def acquireDay(dayStr:String,num:Int): String ={val sdf: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")val date = sdf.parse(dayStr)val cal: Calendar = Calendar.getInstance()cal.setTime(date)cal.add(Calendar.DATE, num)sdf.format(cal.getTime)}def acquire_day_feature(date:String,inter:Int): DataFrame ={val last_day = acquireDay(date,-inter)val data = spark.sql(s"select * from table_name where day > $last_day and day < $date")val statisresult = data.groupBy("uid").sum("count").withColumnRenamed("sum(count)",s"count_$inter")statisresult}}

特征工程-统计数据特征相关推荐

  1. 特征工程之数据预处理(下)

    机器学习入门系列(2)–如何构建一个完整的机器学习项目,第四篇! 该系列的前三篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 特征工程之 ...

  2. 特征工程之数据预处理(上)

    机器学习入门系列(2)–如何构建一个完整的机器学习项目,第三篇! 该系列的前两篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 分别介绍了 ...

  3. 机器学习笔记六——特征工程之数据预处理

    特征工程之数据预处理 1. 处理缺失值 2. 处理异常值 2.1 异常值检测 2.2异常值处理 3.离散特征的连续化处理 4.连续特征的离散化处理 5. 处理类别不平衡问题 6. 图片数据扩充 数据预 ...

  4. 机器学习 | 特征工程(数据预处理、特征抽取)

    所谓特征工程即模型搭建之前进行的数据预处理和特征提取.有时人们常常好高骛远,数据都没处理好就开始折腾各种算法,从第一开始就有问题,那岂不是还没开始就已经结束了.所以说啊,不积跬步无以至千里,生活中的每 ...

  5. 特征工程之数据分箱、Nominal特征编码、Ordinal分类特征编码、特征交叉组合、特征差分

    特征工程之数据分箱.Nominal特征编码.Ordinal分类特征编码.特征交叉组合.特征差分 目录

  6. 「机器学习速成」数据预处理,特征工程,良好特征的特点

    https://www.toutiao.com/a6703863693408469516/ 大家好,今天我们学习[机器学习速成]之 数据预处理,特征工程,良好特征的特点 我们 马上学三点 , 特征工程 ...

  7. ML之FE:特征工程中数据缺失值填充的简介、方法、全部代码实现之详细攻略

    ML之FE:特征工程中数据缺失值填充的简介.方法.全部代码实现之详细攻略 目录 特征工程中数据缺失值填充的简介.方法.经典案例

  8. 特征工程系列:特征筛选的原理与实现(下)

    0x00 前言 我们在<特征工程系列:特征筛选的原理与实现(上)>中介绍了特征选择的分类,并详细介绍了过滤式特征筛选的原理与实现.本篇继续介绍封装式和嵌入式特征筛选的原理与实现. 0x01 ...

  9. 机器学习-特征工程中的特征降维

    对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.由此可见,数据和特征在模型的整个开发过程中是比较重要.特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为 ...

  10. ​特征工程系列:特征预处理(上)

    特征工程系列:特征预处理(上) 关于作者:JunLiang,一个热爱挖掘的数据从业者,勤学好问.动手达人,期待与大家一起交流探讨机器学习相关内容~ 0x00 前言 数据和特征决定了机器学习的上限,而模 ...

最新文章

  1. 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 Category 分类注入方法 )
  2. android4.3 截屏功能的尝试与失败分析
  3. java消息通信_原生 Java 客户端进行消息通信
  4. java调用spark_spark中的并行方法调用以及传递方法中使用spark会话
  5. 秒杀系统设计架构与实现
  6. 详细介绍 Qt Creator 快捷捷应用
  7. Callable 和 Future接口 学习
  8. 详解Redis的架构演化之路(附16张图解)
  9. 修改已经创建的docker容器的端口映射
  10. iOS的GIF动画效果实现
  11. WPS Office 去广告绿色版(2013.11.13更新)
  12. 华为手机怎样关闭鸿蒙系统,华为手机怎么升级鸿蒙系统-华为手机升级成鸿蒙系统教程汇总...
  13. arduino和轮毂电机接线_Arduino六足机器人第一部分—机制与接线
  14. UltraISO/Nero/Daemon Tools
  15. 接口报错500是什么意思_接口测试遇到500报错?别慌,你的头部可能有点问题!...
  16. 华为hcie认证体系华为华为hcie认证价值NSR不间断路由思科华为网工常备知识点解析ie-lab
  17. [附源码]计算机毕业设计JAVA宠物狗领养网站
  18. 微信提现到零钱 CA_ERROR报错总结
  19. NDK学习笔记:一起来变萝莉音!FMOD学习总结(下)
  20. 郭天祥的10天学会51单片机_第三节

热门文章

  1. flume采集数据报错问题解决
  2. 获取height固定折叠元素真实高度方法
  3. Socket实现java服务端与AndroidApp端数据交互
  4. MySQL Study案例之--快速了解MySQL服务器
  5. 系统管理-第1部分 系统的易管理性
  6. anoconda如何切换路径
  7. 2021合工大超越卷数二好题精选
  8. STM32时钟系统学习
  9. c语言中当二维数组越界时会有错误提示,萌新请教大佬们。动态二维数组莫名其妙越界了,找了半天没发现有错啊...
  10. php语+言教程,【杂谈】php言语入门教程(PHP编程进修路线图)