POI推荐实战1:将NYC及CDRs处理后在GETNext运行

2024-03-13 10:40

本文主要是介绍POI推荐实战1:将NYC及CDRs处理后在GETNext运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NYCTKYCDRsInGETNext

将数据经过deepmove方式处理后导入GETNext

目录

  • NYCTKYCDRsInGETNext
  • 1 NYC&TKY
    • 数据经DeepMove方式处理
    • 处理后pk文件经PG2Net导出并处理格式
    • 数据导入GETNext模型并在服务器训练
  • 2 CDRs
    • 数据经DeepMove方式处理
    • 处理后pk文件经PG2Net导出并处理格式
    • 数据导入GETNext模型并训练

1 NYC&TKY

数据经DeepMove方式处理

1、数据直接从Google下载原始txt文件
在这里插入图片描述
2、GETNext所给示例数据显示特征有如下这些:user_id,POI_id,POI_catid,POI_catid_code,POI_catname,latitude,longitude,timezone,UTC_time,local_time,day_of_week,norm_in_day_time,trajectory_id,norm_day_shift,norm_relative_time,但观察数据导入过程发现只需要norm_in_day_time,latitude,longitude,POI_catname,POI_catid_code,POI_catid,POI_id,user_id七项特征输入。于是确定经过数据处理后需要保留的特征
3、txt转csv并将时间调整为deepmove示例文件格式
在这里插入图片描述
4、deepmove数据处理函数调整
此函数用来生成sessions,与原来的session_tran对比,新建session_tran_new用来读取不同的所需要的特征如经纬度和用户id
在这里插入图片描述
5、在时间部分,与deepmove相比,GETNext不区分周六日并将一天按每半个小时划分。调整后的时间部分处理函数如下:
在这里插入图片描述

处理后pk文件经PG2Net导出并处理格式

1、改写PG2Net读取pk文件部分
在这里插入图片描述

2、对train数据和test数据读出后暂存在列表,经过函数处理后添加表头以及调整格式分别保存到csv
在这里插入图片描述

3、设置采样率为100%以打乱数据顺序

数据导入GETNext模型并在服务器训练

1、将数据放入GETNext构图函数,构图后得到训练所需文件
在这里插入图片描述
2、训练在服务器上进行,epoch设置为40,训练结果与PG2Net对比如下
在这里插入图片描述

2 CDRs

数据经DeepMove方式处理

1、CDR数据集没有POI种类并且对POI没有编号,首先对POI进行编号,处理方式为构建编号字典,如果经纬度完全相同则认为是同一个地点编号相同;同时对时间格式进行处理,处理后的数据如下
在这里插入图片描述
2、与NYC类似将符合deepmove格式的数据导入并进行处理,处理后得到pk文件

处理后pk文件经PG2Net导出并处理格式

1、将pk文件导入PG2Next,然后做法与NYC相同,改写了原PG2Net读取pk文件的函数,结果暂存列表调整格式增加表头后转为csv保存,得到train和test对应的csv文件
在这里插入图片描述
在这里插入图片描述

数据导入GETNext模型并训练

1、将处理好的train.csv导入GETNext进行构图,得到25g大的csv…。。。
2、采取采样的方式,采样5%,进行构图后得到11g左右大的csv
在这里插入图片描述
3、项目在服务器进行训练,epoch设为40,训练完后结果如下

在这里插入图片描述

这篇关于POI推荐实战1:将NYC及CDRs处理后在GETNext运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/804596

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用