我正在分析一些地理数据,并试图就时间和地理位置预测/预测下一次事件的发生。数据的顺序如下(有样本数据)
Timestamp Latitude Longitude Event 13307266 102.86400972 70.64039541 "Event A" 13311695 102.8082912 70.47394645 "Event A" 13314940 102.82240522 70.6308513 "Event A" 13318949 102.83402128 70.64103035 "Event A" 13334397 102.84726242 70.66790352 "Event A"
第一步是将其分为100个区域,这样可以减少维度和复杂性。
Timestamp Zone 13307266 47 13311695 65 13314940 51 13318949 46 13334397 26
下一步是做时间序列分析,然后我在这里呆了两个月,阅读了很多文献,认为这些是我的选择 *自回归法 *机器学习
我想利用机器学习来使用python进行预测,但并不能真正弄清楚如何使用它,特别是是否有针对用例的python库/开源代码,我可以在此基础上进行构建。
编辑1: 为了澄清,数据松散地依赖于过去的数据,但在一段时间内是均匀分布的。 可视化数据的最佳方法是,想象N个由算法控制的代理,该算法分配给它们从网格中提取资源的任务。资源是社会经济结构的功能,对地理的依赖性很强。它的兴趣是“算法”能够预测需求区域和时间。
附言: 对于像ARIMA Python这样的自动回归模型,已经有一个库http://pypi.python.org/pypi/statsmodels。
没有示例数据或现有代码,我无法为您提供任何具体的内容。
然而,通常用你想探索的领域的术语来重新表述你的问题是有帮助的。以毫升计:
所以我想说你有监督分类的问题。作为旁白,您可能想先做一些时间规整;我猜事件的模式将取决于一天中的某个时间、一个月中的某个日期或一年中的某个月,您可能想将其表示为一个附加功能。
查看一个流行的Python ML库scikit learn,如下所示:
http://scikit-learn.org/stable/supervised_learning.html
并参考了一位撰稿人最近在scikit学习备忘表上的一篇文章:
http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html
你的第一个好办法就是尝试Support Vector Machines (SVM),如果失败了,也可以尝试k Nearest Neighbours (kNN)。注意,使用ensemble classifier通常比只使用给定的SVM/kNN的一个实例要好。
确切地说,如何将SVM/kNN与时间作为一个特征应用可能需要更多的研究,因为AFAIK(和其他人可能会纠正me)SVM/kNN需要均值为零的有界输入(或归一化为均值为零)。只需做一些随机的谷歌搜索,你就可以找到特定的支持向量机核,例如傅立叶核,它可以为你转换时间序列特征:
用于时间序列分析的支持向量机核
http://www.stefan-rueping.de/publications/rueping-2001-a.pdf
scikit learn允许您为支持向量机指定自定义内核。见:
http://scikit-learn.org/stable/auto_examples/svm/plot_custom_kernel.html#example-svm-plot-custom-kernel-py
根据您对ML命名法的了解,以及手头的示例数据,您可能需要考虑将问题发布到统计堆栈交换Cross Validated。
编辑1:更多地考虑这个问题,你需要真正了解你的功能和相应的标签是否独立和相同分布(IID)。例如,如果你正在模拟森林火灾是如何随时间蔓延的。很明显,一个特定区域着火的可能性取决于它的邻居是否着火。AFAIK-SVM和kNN假设数据是IID。在这一点上,我开始超出我的深度,但我认为您至少应该尝试几个ML方法,看看会发生什么!记住交叉验证!(scikit learn为您做这个)。
相关问题 更多 >
编程相关推荐