提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、交通流是什么?
  • 二、特征工程是什么?
  • 三、处理数据时的一些小技巧
  • 四、一些常用的机器学习python库
  • 总结

前言

小编最近参与了一些工程方面的工作,感触颇深,也逐渐意识到了一些做工程和做研究的区别,作为一个OR人,当面对工程问题时,ML也不得不被提上日程,对于一个OR的研究来说,很多参数可以假设,只需合理,但在工程中就需要数据清洗,分析以及准确的预测。今天就对交通流的特征工程方面做一些小小的分享,也欢迎各位大佬一起学习交流


提示:以下是本篇文章正文内容

一、交通流是什么?

交通流数据直接反映了交通状态,因此对于描述交通状况或者做交通方面的研究时具有重要性。交通流量数据主要记载了一段时间内,通过道路某一卡口的交通实体数,其具有时间相关性,表现为流量分布随着时间变化而变化,且不同的时间段有着显著不同的特征。所以一般来说我们都将交通流作为一个时间序列来进行分析。
而时间序列的研究一直是极为困难的:
问题1:特征维度数高,计算时间长
问题2:数据不充分和不平衡
问题3:时间依赖跨度未知,周期性和规律性难以把握。

当然对于交通流来说还存在空间上的问题,所以对于交通流预测这个老生常谈的问题一直都在出新,就是因为这个问题实际来说是很困难的。

二、特征工程是什么?

“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”特征工程目的是最大限度地从原始数据中提取特征以供算法和模型使用。因为对于机器学习来说,input 的定义是极其重要的,而当我们拿到一组交通流时间序列时,就要考虑如果把他们定义为更好的输入,通过总结和归纳,人们认为特征工程包括以下方面:
图源知乎大佬:https://www.zhihu.com/question/29316149

对于交通流时间序列大致可以分为如下几类:【1】
1.形状特征。(序列的波形,波峰波谷等, 常见方法如DTW,CNN等)
2.时间依赖特征 (相邻或不相邻的片段提取依赖特征,常见方法如LSTM等)
3.序列变化特征 (空间变换,抑制噪声,常见方法如自编码,sequence2sequence等)

而对于交通流序列来说,一般都具有很明显的周期性,同时大部分都会存在早高峰和晚高峰两个峰值,而项链路段的交通流也会有很明显的相关性,于是GNN,GCN各种图神经网络便开始发挥出他们对地理位置的特征学习的优势,这也是现在交通流预测的一大主流方式之一。
当然一般来说如果人工选择了一些特征,如统计学特征:均值,方差,中位数,四分位数,众数等,或者形态学特征如:斜率,峰值等。我们需要做一些相关性分析。
做相关性检验可以使用相关系数、卡方检验、平均互信息、 条件熵、后验概率、逻辑回归权重等方法。

同时现在也出现了一些跳过feature space,直接使用end 2 end 的方法,如下图【2】,效果也非常不错,但是多多少少缺失了一些可解释性。仁者见仁智者见智。



三、处理数据时的一些小技巧

1.pd.read_csv()应该是我们最常见的读取数据的方式之一了,而其中有一个chunksize参数,可以选定每次读取数据的行数,当面对大规模数据时可以使用这个参数,防止memoryerror。

2.pandas检查数据缺失值
df.isna().sum()

3.⽤ isin 描述条件,而不是用for 加 if 的办法

4.异常值检测
孤立森林算法: from sklearn.ensemble import IsolationForest
该算法是一种基于聚类的无监督学习,实际效果还是不错的。

5.数据补全
a.贝叶斯张量分解(基于统计的方法)
b.可以用建立一个回归模型的方法来填补缺失值。(基于预测的方法)
c. 用GAN生成数据进行补全 (基于生成模型的方法)
安利一个好用的工具包 pandas-profiling.他可以很方便地生成分析报告。(包括特征之间的相关性分析)

6.数据预处理时不仅要出重和异常值,还要注意主键的唯一性验证,很多数据本身可能不符合三范式,数据属性要做有效性检验,这部分也要结合业务场景具体考虑。

7.对于交通流序列而言,一定要留心长尾情况,做一些处理。

8.数据的增强也是必要的,比如将数据倒叙,重新组合,变形等,可以达到扩大样本数量的作用,但要依实际情况考虑。

四、一些常用的机器学习python库

1.标准化
from sklearn.preprocessing import StandardScaler
2.min-max归一化
from sklearn.preprocessing import MinMaxScaler
3.二值化
from sklearn.preprocessing import Binarizer
4.缺失值补充(这里更新更好的方式包括贝叶斯张量分解等方法)
from sklearn.preprocessing import Imputer(默认为mean(均值)填充)
5.9种常见的机器学习回归模型
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
from xgboost import XGBRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import AdaBoostRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import BaggingRegressor
(树模型的效果一般来说还是要更优秀的!)
6.可视化
import seaborn as sns
sns.tsplot() / sns.heatmap()

总结

以上内容都是一些不成熟不成体系的见解,而对于特征工程本身而言,如果想做一些创新就需要更加敏锐的sense,能够针对数据和问题的特性设计一些不那么“显而易见”的特征,使得你的feature和model更加work! 这也算是一种小创新。

【1】任守纲,张景旭,顾兴健,熊迎军,王浩云,徐焕良.时间序列特征提取方法研究综述[J].小型微型计算机系统,2021,42(02):271-278.
【2】Zhang X Y, Liu C L, Suen C Y. Towards robust pattern recognition: a review[J]. Proceedings of the IEEE, 2020, 108(6): 894-922.

作者:
王基光,清华大学,深圳国际研究生院,TBSI

关注我们

运小筹公众号
运小筹公众号是致力于分享运筹优化(LP、MIP、NLP、随机规划、鲁棒优化)、凸优化、强化学习等研究领域的内容以及涉及到的算法的代码实现。编程语言和工具包括Java、Python、Matlab、CPLEX、Gurobi、SCIP 等。

交通流特征工程小技巧与思考相关推荐

  1. 【持续更新】机器学习特征工程实用技巧大全

    https://zhuanlan.zhihu.com/p/26444240 (2018/2/6 更新:修改了部分名词的翻译) 与其说是教程类的科普,不如说是一篇经验向的个人笔记,所以细节上比较懒.其实 ...

  2. 积跬步,聚小流------ps有用小技巧,改变png图标颜色

    积跬步,聚小流------ps有用小技巧,改变png图标颜色 *  实现效果: 原图:  改动后: *  实现目的: 满足为实现不同界面色彩搭配改动png图标的颜色 *  实现方法: 1.打开Phot ...

  3. 怎么加网上的精准引流?精准引流有没有小技巧?

    怎么加网上的精准引流?精准引流有没有小技巧? 引流一定是要靠好的内容去吸引用户- 所以首先我们要在网上找个地方把自己的内容都做上去- 比方说:公司官网,博客,微博,公众号,等等等,这些都是非常好的内容 ...

  4. 强烈推荐!分享一个持续连载的《特征工程小锦囊》项目,代码已开源!

    随着我们在机器学习.数据建模.数据挖掘分析这条发展路上越走越远,其实越会感觉到特征工程的重要性,平时我们在很多地方都会看到一些很好的特征工程技巧,但是都会是一个完整项目去阅读,虽然说这样子也可以学习挖 ...

  5. 积跬步,聚小流------ps实用小技巧,改变png图标颜色

    *  实现效果: 原图:  修改后: *  实现目的: 满足为实现不同界面色彩搭配修改png图标的颜色 *  实现方法: 1.打开Photoshop工具,导入需要进行修改的png图标: 2.对导入的图 ...

  6. 2.2w字长文详解推荐系统之数据与特征工程,码起来慢慢看

    作者丨gongyouliu 编辑丨lily 来源 | 大数据与人工智能(ID:ai-big-data) [导读]推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应 ...

  7. 「构建企业级推荐系统系列」推荐系统之数据与特征工程

    作者 | gongyouliu 编辑 | auroral-L 推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应用于提供toC类产品的互联网企业服务中,通过推荐系 ...

  8. 推荐系统之数据与特征工程

    点击上方"大数据与人工智能","星标或置顶公众号" 第一时间获取好内容 作者丨gongyouliu 编辑丨lily 这是作者的第25篇文章,约2.2w字,阅读需 ...

  9. 【转】【重要】推荐系统之数据与特征工程

    原文链接: 推荐系统之数据与特征工程 原文作者丨gongyouliu  来自 大数据与人工智能 推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应用于提供toC类 ...

  10. 推荐系统特征工程的万字理论

    作者丨gongyouliu 编辑丨lily 这是作者的第25篇文章,约2.2w字,阅读需120分钟   推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应用于提供 ...

最新文章

  1. 万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
  2. 小数据,大前景 !美国智库最新报告:长期被忽略的小数据人工智能潜力不可估量...
  3. dll文件是什么语言编写的_Win7系统当中libeay32.dll文件丢失的解决方法是什么?...
  4. Jenkins 基本概念与简介
  5. 【Linux】一步一步学Linux——pstack命令(261)
  6. go应用程序写kafka阻塞(大坑)
  7. sort()排序(Comparable、Comparator)
  8. 求完全二叉树的结点个数
  9. axure 内部框架内容下滑_Axure教程:转盘抽奖交互原型
  10. 16c语言第七届省赛,第十二届全国青少年信息学奥林匹克联赛初赛试题及答案普及组、C语言...
  11. Hibernate简易BaseDao演示单例
  12. I学霸官方免费教程四十二 :Java流之字节流 输入流和输出流 InputStream和OutputStream...
  13. java匿名内部类 内部类_java中的匿名内部类详细总结
  14. 安卓一键ROOT权限获取软件排行榜
  15. 计算机教室标语6个字,教室标语大全
  16. 20常见的手机问题及其解决方案
  17. PMP之项目采购管理
  18. 语音论文优选:口语理解A Streaming End-to-End Framework For SLU
  19. 一点Scala学习资源
  20. 角度与弧度之间的转换

热门文章

  1. 吐槽表情包计算机系,网友用表情包形容自己的专业 分明是场吐槽大会
  2. port access vlan
  3. 短时傅里叶变换(Short Time Fourier Transform)
  4. 工厂信息化系统(ERP、PLM、MES、WMS)架构设计与建设规划
  5. PHP连接MySQL 8.0报错的解决办法
  6. 计算机无法安装新字体,在计算机上安装新字体
  7. 人类按什么动物的优点发明什么
  8. SSH框架搭建和整合(struts2、spring4、hibernate5)
  9. html下拉菜单栏代码
  10. 虚拟主机和服务器之间的区别