机器学习案例详解的直播互动平台——
机器学习训练营(入群联系qq:2279055353)
下期直播案例预告:大数据预测商品的销售量波动趋势

案例背景

这个案例是关于俄罗斯著名的软件制作发行公司——1C公司,在2013年1月——2015年10月,软件产品在各个零售商店日常销售情况的数据分析。

  • 数据来源:Kaggle 竞赛

  • 代码实现:R 语言

数据文件

我们介绍这个案例的主要文件和数据。

sales_train.csv

从2013年1月到2015年10月,1C公司软件产品的日销售数据集。它包括的变量有:

  • date: 销售日期

  • date_block_num: 连续的月份值,2013年1月记为0,2月记为1,以此类推。

  • shop_id: 零售商店识别符

  • item_id: 产品识别符

  • item_price: 产品价格

  • item_cnt_day: 产品日销量

items.csv

数据集items.csv记录了产品的附加信息。

  • item_name: 产品名字

  • item_id: 产品识别符

  • item_category_id: 产品所属类别识别符

item_categories.csv

它包括产品类别名字item_category_name和产品类别识别符item_category_id两个变量。

shops.csv

它包括零售商店名字和识别符变量。

数据集下载

请到以下百度网盘下载上述数据集:

链接:https://pan.baidu.com/s/1QXIqX16vsDtTuy_QkU97Eg

提取码:aw5w

我们在对销售数据作细致的分析之前,需要对数据进行必要的准备。为此,先在R环境里加载一些必要的包。

library(readr)
library(data.table)
library(datasets)
library(dplyr)
library(lubridate)
library(ggplot2)
library(ggthemes)
library(plotly)
library(Amelia)
library(caTools)
library(class)
library(scales)

数据准备

导入数据集

我们先导入sales_train.csv, items_csv这两个数据集,并查看一下数据集的结构和维数。

dataset_sales_train <- read_csv("../input/sales_train.csv")
head(dataset_sales_train)

dataset_items <- read_csv("../input/items.csv")
head(dataset_items)

dim(dataset_sales_train)
dim(dataset_items)

特征加工

来自数据集dataset_items的变量item_category_id记载了产品所属的类别。这是一个重要的变量,所以我们想把它加入到
dataset_sales_train里。这需要通过合并这两个数据集来实现,合并后的变量item_name完全可以由item_id代替,因此可以将它从合并后的数据集里删除。

dataset_sales <- dataset_sales_train %>% left_join(dataset_items, by = c("item_id"))
dataset_sales$item_name <- NULL
dataset_sales <- as.data.frame(dataset_sales)
str(dataset_sales)

注意到,date列是字符型的,而它的实际含义是日期,所以我们把它转换成日期型的。进一步根据日期拆分出年、月、日、周的新变量。

dataset_sales$date <- dmy(dataset_sales$date)dataset_sales$year <- year(dataset_sales$date)
dataset_sales$month <- month(dataset_sales$date)
dataset_sales$day <- day(dataset_sales$date)
dataset_sales$weekday <- weekdays(dataset_sales$date)

再把新变量year, weekday转换成因子型的。

dataset_sales$year <- as.factor(dataset_sales$year)
dataset_sales$weekday <- as.factor(dataset_sales$weekday)head(dataset_sales)


在分析产品整体销量之前,我们先来统计一下每家商店在每个月份产品的销量。

dataset_sales_item_cnt_month <- dataset_sales %>% group_by(year, month, shop_id, item_id) %>% summarise(item_cnt_month = sum(item_cnt_day)) %>% ungroup()
dataset_sales <- dataset_sales %>% left_join(dataset_sales_item_cnt_month,by = c("year", "month", "shop_id", "item_id"))
head(dataset_sales)
rm(dataset_sales_item_cnt_month)

探索性分析

理解数据

glimpse(dataset_sales)
str(dataset_sales)
summary(dataset_sales)

查看数据集里是否有缺失值、空值。

colSums(is.na(dataset_sales))
is.null(dataset_sales)

变量相关性

我们检查所有数值变量的相关性,并画出相关系数矩阵图。

num.cols <- sapply(dataset_sales, is.numeric)
dataset_sales_numcols <- dataset_sales[, num.cols]
dataset_sales_numcols$date_block_num <- NULL
dataset_sales_numcols$year <- NULL
dataset_sales_numcols$month <- NULL
dataset_sales_numcols$day <- NULL
cor(dataset_sales_numcols)melted_corr <- melt(cor(dataset_sales_numcols))
ggplot(data = melted_corr, aes(x=Var1, y=Var2, fill=value)) +geom_tile() +scale_fill_gradient(low="grey", high="darkred") +geom_text(aes(x=Var1, y=Var2, label=round(value, 2)), size=4) +labs(title="Correlation Matrix", x="Numeric Columns", y="Numeric Columns",fill="Coefficient Range") +theme(axis.text.x=element_text(angle=45, vjust=0.5))

未完待续

软件公司产品营销大数据分析(上)相关推荐

  1. 大数据分析公司_大数据分析以及处理_提供多种数据服务

    现如今,数据已经成为一些企业的"根",越来越多的公司注重数据分析为企业带来的价值,都开始注重大数据的这趟"列车".我们生活中的事情都受到了监视以及测试,并且创建 ...

  2. 思迈特软件Smartbi:大数据分析平台的搭建和BI平台的区别

    ​大数据是当下朝阳方向,尤其是国家政策在往大数据行业倾斜,各行各业都在进行数据化转型,那就讲讲大数据分析平台是如何搭建的以及和BI平台有什么区别. 一.BI是什么 BI(BusinessIntelli ...

  3. 供应链 信用管理 大数据_大数据分析在供应链管理中的应用

    薛如宾 [摘要]我国的综合实力在不断增强,大数据分析也在企业中得到了更大的作用,本文概述了大数据分析在供应链管理的应用,大数据分析在企业中的应用,大数据分析与供应链之间的关系. [关键词]大数据分析; ...

  4. [BigData]16家大数据分析平台

     对今天的企业来说,数据分析已经成为生死攸关的选择.我们分析一些著名的供应商,从Hadoop创业者到传统的数据库市场参与者. 革命 – 这个词汇十分准确地描述了我们所处的这个数据分析的时代.企业一 ...

  5. IBM收购企业搜索软件公司Vivisimo

    北京时间4月26日消息,继上周收购销售数据分析公司Varicent以后,IBM今天宣布收购数据领域中的另一家公司Vivisimo,但并未披露这项交易的具体财务条款. Vivisimo已经筹集了600万 ...

  6. android设备登录是什么手机_手机玩游戏屏幕太小,教你怎么一分钟把手机游戏画面投到大屏幕上...

    把手机投屏到电脑上会带来很多便捷之处,尽管市面上部分手机屏幕的尺寸够大,但还是有很多手机屏幕不能满足我们的日常需求,例如玩一些大型游戏,屏幕小玩得不尽兴,相信很多人都会思考,有没有一些方法,可以将我们 ...

  7. Hadoop巨头完成合并,成全球第二大开源软件公司!

    去年 10 月份,大数据领域 Hadoop 巨头 Cloudera 与 Hortonworks 宣布合并,给业界带来不小震动. 两家公司希望通过合并,创造出一个年收入达到 7.2 亿美元的新实体,并制 ...

  8. 当网络安全遇上大数据分析(6)

    [本文继续乱弹;-)] BDA从一般意义上,或者从技术层面可以划分为数据获取.数据整理.数据实时分析.数据存储.数据检索.数据历史分析.数据可视化.而从BDA的应用层面,可以应用到网络安全领域,这时候 ...

  9. 北京做大数据分析的公司排名有哪些

    北京做大数据分析的公司排名有哪些 大数据分析的工作流程是什么 大数据分析流程如下: 第一步:从多个来源收集数据 可以多种格式(JSON.CSV.HTML)和多种来源收集,包括: 一线 华盛恒辉.五木恒 ...

  10. 提供大数据分析服务以及机器学习API的公司

    最近看到的几个提供大数据分析服务以及机器学习API的公司 Everstring:http://www.everstring.com/ 团队很强大. ------------ Clarifai: htt ...

最新文章

  1. python函数的用法详解(作用、定义、调用、函数参数、函数返回值、函数说明文档、函数嵌套使用)
  2. shinelon笔记本进bios设置u盘启动_U盘启动快捷键、开机进BIOS按键查询
  3. 普通调幅(AM)与抑制载波双边带调幅(DSB)matlab编程实现
  4. mysql判断不等于空的脚本_Shell脚本中判断输入变量或者参数是否为空的方法
  5. 算法3-------最长子序列和
  6. 能买?这款手机搭载联发科P60+32G,仅售399元
  7. Junit 测试时内存溢出解决办法
  8. 深入理解jvm jdk1,7(1)
  9. 调试 acf 的时候发现问题
  10. java实现解压zip文件,(亲测可用)!!!!!!
  11. java收费_一文看懂Java收费 附可替换方案!
  12. 在你的ipad上使用Vscode撸代码(快速操作向)
  13. 心灵之火的瞬间-第二则
  14. 环信移动客服客服昵称头像设置
  15. python docx 字体设置_python docx 中文字体设置
  16. 面向对象概念及对象、抽象、类的解释
  17. MMKV-Android中的存储框架
  18. 2007世界大学学术排名(上海交大)
  19. LNMP旧版本一键安装
  20. 2020幻影围棋 playChess模块

热门文章

  1. CSS定位规则之BFC
  2. 大学计算机课程复习--软件工程
  3. 异常处理和代码复用在python自动化运维中的使用(eNSP模拟器)
  4. Smart Link与Monitor Link技术
  5. 成都市交委与摩拜科技联手 助推智慧城市建设
  6. ajax请求后台php数据时查看报错parse error
  7. [saiku] JCR在saiku中的运用原理
  8. Oracle几种清除数据的方式,在平台用别的医院数据库做初始化时有用
  9. Windows Server 2012 R2 WSUS-3:安装服务器角色
  10. Linux学习记录--ACL权限控制