机器学习kaggle案例:沃尔玛招聘 您所在的位置:网站首页 沃尔玛小推车一元怎么取出 机器学习kaggle案例:沃尔玛招聘

机器学习kaggle案例:沃尔玛招聘

2024-07-17 17:23| 来源: 网络整理| 查看: 265

kaggle链接:https://www.kaggle.com/c/walmart-recruiting-store-sales-forecasting ipynb文件:https://github.com/824024445/KaggleCases

一、简介 1.1 比赛描述

建模零售数据的一个挑战是需要根据有限的历史做出决策。如果圣诞节一年一次,那么有机会看到战略决策如何影响到底线。

在此招聘竞赛中,为求职者提供位于不同地区的45家沃尔玛商店的历史销售数据。每个商店都包含许多部门,参与者必须为每个商店中的每个部门预测销售额。要添加挑战,选定的假日降价事件将包含在数据集中。众所周知,这些降价会影响销售,但预测哪些部门受到影响以及影响程度具有挑战性。

想要在世界上最大的一些数据集的良好环境中工作吗?这是向沃尔玛招聘团队展示您的模特气概的机会。

这项比赛计入排名和成就。 如果您希望考虑参加沃尔玛的面试,请在第一次参加时选中“允许主持人与我联系”复选框。

你必须在招募比赛中作为个人参加比赛。您只能使用提供的数据进行预测。

1.2 比赛评估

本次比赛的加权平均绝对误差(WMAE)评估:

[外链图片转存失败(img-l8sox1g6-1566399330281)(https://raw.githubusercontent.com/824024445/KaggleCases/master/img/walmart-recruiting-store-sales-forecasting/1-1.jpg)]

n是行数 yi是真实销售额 wi是权重,如果该周是假日周,wi=5,否则为1

提交文件:Id列是通过将Store,Dept和Date与下划线连接而形成的(例如Store_Dept_2012-11-02)

对于测试集中的每一行(商店+部门+日期三元组),您应该预测该部门的每周销售额。

1.3 数据描述

您将获得位于不同地区的45家沃尔玛商店的历史销售数据。每个商店都包含许多部门,您的任务是预测每个商店的部门范围内的销售额。

此外,沃尔玛全年举办多项促销降价活动。这些降价活动在突出的假期之前,其中最大的四个是超级碗,劳动节,感恩节和圣诞节。包括这些假期的周数在评估中的加权比非假日周高五倍。本次比赛提出的部分挑战是在没有完整/理想的历史数据的情况下模拟降价对这些假期周的影响。

stores.csv: 此文件包含有关45个商店的匿名信息,指示商店的类型和大小。

train.csv: 这是历史销售数据,涵盖2010-02-05至2012-11-01。在此文件中,您将找到以下字段: Store - 商店编号 Dept - 部门编号 Date - 一周 Weekly_Sales - 给定商店中给定部门的销售额(目标值) sHoliday - 周是否是一个特殊的假日周

test.csv: 此文件与train.csv相同,但我们保留了每周销售额。您必须预测此文件中每个商店,部门和日期三元组的销售额。

features.csv: 此文件包含与给定日期的商店,部门和区域活动相关的其他数据。它包含以下字段: Store - 商店编号 Date - 一周 Temperature - 该地区的平均温度 Fuel_Price - 该地区的燃料成本 MarkDown1-5 - 与沃尔玛正在运营的促销降价相关的匿名数据。MarkDown数据仅在2011年11月之后提供,并非始终适用于所有商店。任何缺失值都标有NA。 CPI - 消费者物价指数 Unemployment - 失业率 IsHoliday - 周是否是一个特殊的假日周

为方便起见,数据集中的四个假期在接下来的几周内(并非所有假期都在数据中):

超级碗:2月12日至10日,11月2日至11日,10月2日至12日,2月8日至2月13 日劳动节:10月9日至10日,9月9日至9日,9月9日至9月12日-13 感恩节:26-Nov- 10,25 -Nov-11,23-Nov-12,29-Nov-13 圣诞节:31-Dec-10,30-Dec-11,28-Dec-12,27-Dec -13

二、代码 2.1 获取数据 2.1.1 下载数据

我写了一个小函数来实现数据的下载,数据全都是官网原版数据,我存到了我的github上。(https://github.com/824024445/KaggleCases)

所有数据都下载到了你当前文件夹下的datasets文件下,每个案例涉及到的数据全部下载到了以该案例命名的文件夹下。

我所有的kaggle案例的博客,下载数据均会使用这个函数,只需要修改前两个常量即可。 > 注:此函数只用于下载数据,函数在该代码框内就运行了。不再用到其它代码中,包括常量,也不会用在其他地方。

import os import zipfile from six.moves import urllib FILE_NAME = "walmart-recruiting-store-sales-forecasting.zip" #文件名 DATA_PATH ="datasets/walmart-recruiting-store-sales-forecasting" #存储文件的文件夹,取跟文件相同(相近)的名字便于区分 DATA_URL = "https://github.com/824024445/KaggleCases/blob/master/datasets/" + FILE_NAME + "?raw=true" def fetch_data(data_url=DATA_URL, data_path=DATA_PATH, file_name=FILE_NAME): if not os.path.isdir(data_path): #查看当前文件夹下是否存在"datasets/titanic",没有的话创建 os.makedirs(data_path) zip_path = os.path.join(data_path, file_name) #下载到本地的文件的路径及名称 # urlretrieve()方法直接将远程数据下载到本地 urllib.request.urlretrieve(data_url, zip_path) #第二个参数zip_path是保存到的本地路径 data_zip = zipfile.ZipFile(zip_path) data_zip.extractall(path=data_path) #什么参数都不输入就是默认解压到当前文件,为了保持统一,是泰坦尼克的数据就全部存到titanic文件夹下 data_zip.close() fetch_data() 2.1.2 读取数据 import pandas as pd import numpy as np train_df = pd.read_csv("datasets/walmart-recruiting-store-sales-forecasting/train.csv") test_df = pd.read_csv("datasets/walmart-recruiting-store-sales-forecasting/test.csv") features = pd.read_csv("datasets/walmart-recruiting-store-sales-forecasting/features.csv") stores = pd.read_csv("datasets/walmart-recruiting-store-sales-forecasting/stores.csv") train_df = train_df.merge(features, on=["Store", "Date"], how="left").merge(stores, on="Store", how="left") test_df = test_df.merge(features, on=["Store", "Date"], how="left").merge(stores, on="Store", how="left") combine = [train_df, test_df] train_df.head() Store Dept Date Weekly_Sales IsHoliday_x Temperature Fuel_Price MarkDown1 MarkDown2 MarkDown3 MarkDown4 MarkDown5 CPI Unemployment IsHoliday_y Type Size 0 1 1 2010-02-05 24924.50 False 42.31 2.572 NaN NaN NaN NaN NaN 211.096358 8.106 False A 151315 1 1 1 2010-02-12 46039.49 True 38.51 2.548 NaN NaN NaN NaN NaN 211.242170 8.106 True A 151315 2


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有