机器学习实战 | 综合项目-电商销量预估

(100天2小时第二十二天)读取csv、保存csv文件,缺失值处理 一、给你一个csv文件,怎么用pandas读取,怎么保存csv文件? 1.若文件名为:train.csv 2.读取数据:pd.read_csv('train.csv') 保存数据: (1)在Excel 中打开需要存为csv的文件 (2)在文件上方的菜单栏中选择文件选项的另存为,在弹出的选项中选择并点击“其他格式”选项按扭,进入下一页面。 (3)在存储文件类型的选项栏中选择“CVS”类型,如下图所示,选好后点击保存。 ... 阅读详情
AI摘要

本文介绍了基于Python解决电商销量预测的全过程,涵盖数据探索分析、预处理、特征工程和建模调优。通过Kaggle的Rossmann Store Sales竞赛数据,使用Numpy、Pandas、Matplotlib、Seaborn、Scikit-Learn、XGBoost和LightGBM等工具进行数据处理和模型构建。文章详细展示了数据分布、相关性分析、模型训练和评估,以及参数调整等关键步骤。

作者:韩信子@ShowMeAI
教程地址:https://www.showmeai.tech/tutorials/41
本文地址:https://www.showmeai.tech/article-detail/206
声明:版权所有,转载请联系平台与作者并注明出处
收藏ShowMeAI查看更多精彩内容


1.案例介绍

在本篇内容中,ShowMeAI将基于Kaggle数据科学竞赛平台的Rossmann store sales大数据竞赛项目,给大家梳理和总结,基于Python解决电商建模的全过程:包括数据探索分析、数据预处理与特征工程、建模与调优。

本篇对应的结构和内容如下。

  • 第①节:介绍本篇中我们解决方案所用到的Python工具库。
  • 第②节:介绍Rossmann store sales项目基本情况,包括业务背景、数据形态、项目目标。
  • 第③节:介绍结合业务和数据做EDA,即探索性数据分析的过程。
  • 第④节:介绍应用Python机器学习工具库SKLearn/XGBoost/LightGBM进行建模和调优的过程。

2.工具库介绍

(1) Numpy

Numpy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy的主要特征如下:

综合项目; 电商销量预估<1>; 工具库介绍; Numpy; 6-1

  • 一个强大的N维数组对象ndarray
  • 广播功能函数
  • 整合C/C++/Fortran代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

想对Numpy有详细了解的宝宝,欢迎查看ShowMeAI的 数据分析系列教程 中的Numpy部分。大家也可以查看ShowMeAI总结的Numpy速查表 数据科学工具速查 | Numpy使用指南 做一个快速了解。

(2) Pandas

Pandas是一个强大的序列数据处理工具包,项目开发之初是为了分析公司的财务数据以及金融数据。如今Pandas广泛地应用在了其他领域的数据分析中。它提供了大量能使我们快速便捷地处理数据的函数和方法,非常强大。

综合项目; 电商销量预估<1>; 工具库介绍; Pandas; 6-2

想对Pandas有详细了解的宝宝,欢迎查看ShowMeAI的 数据分析系列教程 中的Pandas部分。大家也可以查看ShowMeAI总结的Pandas速查表 数据科学工具速查 | Pandas使用指南 做一个快速了解。

(3) Matplotlib

Matplotlib是Python最强大的绘图工具之一,其主要用于绘制2D图形或3D图形的2D示意图。其在数据分析领域它有很大的地位,因为可视化可以帮助我们更清晰直观地了解数据分布特性。

综合项目; 电商销量预估<1>; 工具库介绍; Matplotlib; 6-3

想学习Matplotlib工具库的宝宝,也可以查看ShowMeAI总结的Matplotlib速查表 数据科学工具速查 | Matplotlib使用指南 做一个快速了解。

(4) Seaborn

Seaborn是基于Python且非常受欢迎的图形可视化库,在Matplotlib的基础上,进行了更高级的封装,使得作图更加方便快捷。即便是没有什么基础的人,也能通过极简的代码,做出具有分析价值而又十分美观的图形。

综合项目; 电商销量预估<1>; 工具库介绍; Seaborn; 6-4

想对Seaborn有详细了解的宝宝,欢迎查看ShowMeAI的 数据分析系列教程 中的Seaborn部分。
大家也可以查看ShowMeAI总结的Seaborn速查表 数据科学工具速查 | Seaborn使用指南 做一个快速了解。

(5) Scikit-Learn

Python机器学习工具库Scikit-Learn,构建在Numpy,SciPy,Pandas和Matplotlib之上,也是最常用的Python机器学习工具库之一,里面的API的设计非常好,所有对象的接口简单,很适合新手上路。覆盖的模型非常多,适用场景广泛。

综合项目; 电商销量预估<1>; 工具库介绍; Scikit-Learn; 6-5

想对Scikit-Learn有详细了解的宝宝,欢迎查看ShowMeAI的机器学习实战教程中的SKLearn入门 和 SKLearn指南 部分。也可以查看ShowMeAI总结的Scikit-Learn速查表 AI建模工具速查 | Scikit-Learn使用指南 做一个快速了解。

(6) XGBoost

XGBoost是eXtreme Gradient Boosting的缩写称呼,它是一个非常强大的Boosting算法工具包,优秀的性能(效果与速度)让其在很长一段时间内霸屏数据科学比赛解决方案榜首,现在很多大厂的机器学习方案依旧会首选这个模型。XGBoost在并行计算效率、缺失值处理、控制过拟合、预测泛化能力上都变现非常优秀。

综合项目; 电商销量预估<1>; 工具库介绍; XGBoost; 6-6

想对XGBoost有详细了解的宝宝,欢迎查看ShowMeAI的文章 图解机器学习 | XGBoost模型详解 理解其原理,以及文章 XGBoost工具库建模应用详解 了解详细用法。

(7) LightGBM

LightGBM是微软开发的boosting集成模型,和XGBoost一样是对GBDT的优化和高效实现,原理有一些相似之处,但它很多方面比XGBoost有着更为优秀的表现。

综合项目; 电商销量预估<1>; 工具库介绍; LightGBM; 6-7

想对LightGBM有详细了解的宝宝,欢迎查看ShowMeAI的文章 图解机器学习 | LightGBM模型详解 理解其原理,以及文章 LightGBM工具库建模应用详解 了解详细用法。

3.项目概况介绍

本项目源于Kaggle平台的大数据机器学习比赛 Rossmann Store Sales,下面对其展开做介绍。

3.1 背景介绍

Rossmann成立于1972年,是德国最大的日化用品超市,在7个欧洲国家有3000多家商店。商店不定时会举办短期的促销活动以及连续的促销活动以此来提高销售额。除此之外,商店的销售还受到许多因素的影响,包括促销、竞争、学校和国家假日、季节性和周期性。

综合项目; 电商销量预估<1>; 项目概况介绍; 背景介绍 Rossmann; 6-8

3.2 数据介绍

数据以1115家Rossmann连锁商店为研究对象,从2013年1月1日到2015年7月共计录1017209条销售数据(27个特征)。

数据集一共涵盖了四个文件:

  • train.csv:含有销量的历史数据
  • test.csv:未含销量的历史数据
  • sample_submission.csv:以正确格式提交的示例文件
  • store.csv:关于每个商店的一些补充信息

其中,train.csv中的数据中一共含有9列信息:

  • store:为对应店铺的id序号
  • DayOfWeek:代表着每周开店的天数
  • Data:是对应销售额Sales产生的日期
  • Sales:就是销售额的历史数据
  • Customers:为进店的客人数量
  • Open:则表示这个店铺是否开门与否
  • Promo:表示商店是否在当天有促销活动
  • StateHoliday:与SchoolHoliday分别表示了是否是国定假日或是学校假日。

(1) train.csv

我们在Kaggle的data页面下部的数据概览可以大致查看每个数据的分布情况和部分数据样例如下:

综合项目; 电商销量预估<1>; 项目概况介绍; 数据介绍; 6-9

(2) test.csv

test.csv中的数据列几乎和train.csv一样,但缺少了Sales(也就是销售数据)以及Customers(用户流量)这两列。而我们的最终目标就是利用test.csv以及store.csv中的补充信息预测出test.csv中缺失的Sales数据。

test.csv的数据分布情况,可以看到和上面相比缺少了Sales以及与Sales有强关联的Customer数据。

数据分布和部分示例数据如下:

综合项目; 电商销量预估<1>; 项目概况介绍; 数据介绍; 6-10

(3) sample_submission.csv

结果文件sample_submission.csv中仅有id与Sales这两列,这个文件是我们将我们的预测答案提交至Kaggle的判题器上的标准格式模板。

在Python中我们只需要打开此文件,并将预测数据按照顺序填入Sales这一列后,使用Dataframe.to_csv(‘sample_submission.csv‘)后就可以将带有预测数据的sample_submission.csv保存至本地并准备后续上传。

综合项目; 电商销量预估<1>; 项目概况介绍; 数据介绍; 6-11

(4) store.csv

大家可以看到,train.csv与test.csv中有对应的店铺id,这些店铺id的详细情况就对应在store.csv中,其中记录了一些店铺的地理位置信息以及营促销信息。

store.csv的数据分布情况,可以注意到这里有很多离散的类别标签。

数据分布和部分示例数据如下:

综合项目; 电商销量预估<1>; 项目概况介绍; 数据介绍; 6-12

其中:

  • Store:对应表示了店铺的编号。
  • StoreType:店铺的种类,一共有a、b、c、d四种不同种类的店铺。大家可以把它想象成快闪店,普通营业店,旗舰店,或mini店这样我们生活中的类型。
  • Assortment:用a、b、c三种分类描述店铺内售卖产品的组合级别。例如旗舰店和mini店中组合的产品肯定是有很大不同的。
  • Competition Distance、Competition Open Since Year、Competition Open Since Month:分别表示最近的竞争对手的店铺距离,开店时间(以年计算),开店时间(以月计算)。
  • Promo2:描述该店铺是否有长期的促销活动。
  • Promo2 Since Year于Promo2 Since Week:分别表示商店开始参与促销的年份和日历周。
  • Promo Interval:描述promo2开始的连续间隔,以促销重新开始的月份命名。

3.3 项目目标

在了解了这些数据后我们就需要明确一下我们的项目目的,在Rossmanns销售预测中,我们需要利用历史数据,也就是train.csv中的数据进行监督学习。训练出的模型利用通test.csv中的数据进行模型推断(预测),将预测出的数据以sample_submission.csv的格式提交至Kaggle进行评分。在这过程中还可以结合store.csv中的补充信息加强我们模型获得数据的能力。

3.4 评估准则

模型所采纳的评估指标为Kaggle在竞赛中所推荐的 Root Mean Square Percentage Error (RMSPE)指标。

R M S P E = 1 n ∑ i = 1 n ( y i − y ^ i y i ) 2 = 1 n ∑ i = 1 n ( y ^ i y i − 1 ) 2 RMSPE = \sqrt{\frac{1}{n}\sum\limits_{i=1}^n\left(\frac{y_i-\hat{y}_i}{y_i}\right)^2} = \sqrt{\frac{1}{n}\sum\limits_{i=1}^n\left(\frac{\hat{y}_i}{ {y}_i}-1\right)^2} RMSPE=n1​i=1∑n​(yi​yi​

机器学习实战 | 综合项目-电商销量预估进阶方案 本篇内容是Kaggle数据科学竞赛Rossmann store sales解决方案的进阶版本,整体方案包括探索性数据分析、缺失值处理、特征工程、基准模型与评估、XGBoost建模与调优等完整板块。 阅读详情

相关推荐

用SQL做机器学习:BigQuery ML实战指南

机器学习(ML)本质上是将数据转化为可执行预测的统计建模过程,其核心原理在于特征工程、模型拟合与泛化评估。随着数据基础设施演进,ML正从Python生态向数据湖原生能力迁移——SQL作为最普及的数据操作语言,天然具备可审计、可复现、易协同的工程优势。BigQuery ML正是这一趋势的典型代表,它将逻辑回归、ARIMA_PLUS、DNN等常用模型封装为标准SQL语法,在PB级数据上直接完成训练与预测,无需导出、不依赖本地环境。该技术显著降低数据科学门槛,特别适用于电商复购预测、用户分群、LTV建模等高频业务

cri5768的博客 424

AWS机器学习工程师认证:云原生ML工程交付能力实战指南

机器学习工程化(MLOps)是将算法模型转化为稳定、可监控、可扩展生产服务的关键能力。其核心在于数据工程、模型训练部署、持续监控与安全合规的端到端闭环,而非孤立的算法调优。在AWS云环境中,这一过程高度依赖SageMaker、Glue、CloudWatch等原生服务的协同配置与资源约束决策,例如S3分区策略直接影响Athena查询成本,Serverless Inference的冷启动需权衡MemorySize与Provisioned Concurrency。真实场景中,模型漂移检测、KMS密钥轮换兼容性、P

weixin_33788244的博客 449

23个经典机器学习实战项目汇总,适合初学者练手

项目构想:客户细分是一种根据客户的购买历史,性别,年龄,兴趣等对客户进行细分的技术。这是一个出色的项目,将改善孩子们的学习过程。对于这个初学者的项目,我们将使用泰坦尼克号数据集,其中包含幸存者和在泰坦尼克号飞船中死亡的人的真实数据。项目构想:该ML项目背后的构想是建立一个模型,该模型将对用户可以贷款多少进行分类。项目构想:该python机器学习项目的思想是开发一个机器学习项目,并自动对音频中的不同音乐流派进行分类。项目构想:协作过滤是一项很棒的技术,可根据相似用户的反应来过滤出用户可能喜欢的项目。

白话机器学习 1963

AI在电商平台商品趋势预测中的应用

AI在电商平台商品趋势预测中的应用 关键词:AI, 电商平台, 商品趋势预测, 预测模型, 深度学习, 机器学习 1. 背景介绍 1.1 问题由来 随着电子商务的快速发展和网络

AI大模型应用之禅 1200

Win本地部署DeepSeek

Ollama 提供了简单的接口,用于创建、运行和管理这些模型,同时还维护了一个丰富的预构建模型库,可以轻松集成到各种应用程序中。重启ollama,具体操作为打开搜索ollama进程,将其结束进程,之后再执行相关模型下载命令即可,或重启电脑!Ollama支持多种DeepSeek模型版本,用户可以根据硬件配置选择合适的模型。配置添加系统环境变量OLLAMA_MODELS,设置其值为新的路径,点击确定应用。安装完成后,在终端输入以下命令,检查Ollama版本。:14B、32B或70B版本,适合高端GPU。

m0_67297673的博客 2394

74HC138译码器的原理和使用

A0,A1,A2为3位二进制加权地址输入端口,A2A1A0顺序组成的3位2进制数对应的十进制数x控制使能端口Yx';例如当A2A1A0 = 101 时,其他门输出端全为高电平,只有Y5'为低电平。 Y0-Y7为8个输出端口,其输出电平由A0,A2,A3,E1,E2,E3决定。

diksan的博客 6万+

【牛股启动线】副图指标使用技术说明,图文案例分享,通达信炒股指标

如上图,在紫色线在黑色虚线上时,在出现紫色柱线时,通常会出现强势拉升的行情​。柱线加长加上紫色线上扬,进场跟随做多抓强势行情,紫色柱线和紫色线同时做多持续则可以继续持股。如上图,副图指标【牛股启动线】,指标信号包括紫色线走势信号和紫色柱线信号,以及底部的四条虚线技术信号​,还有一条绿色的参考线,一条黑色的虚线两天分档线。如上图,参考买点,紫色柱线开始出现时进场买点,在上图标记的位置对应的就是进场买点​。紫色柱线加长+紫色线上扬,多头共振持股,行情继续拉升阶段,持股待涨或顺势​进场做多。

weixin_69760830的博客 1913

【WorkBuddy专栏52】Codex与WorkBuddy生态适配、用户争夺与未来走向(下)

【WorkBuddy专栏52】Codex与WorkBuddy在中国大陆的发展——生态适配、用户争夺与未来走向(下)

AI人人懂 682

3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)

本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。 在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。 下面是解决方案: 1、选中加载的模型,然后点击 渲染-> 渲染到纹理 2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...

cchangcs 6180

Unity的粒子系统使用shadergraph(内置管线)制作的一个顶点偏移shader,但是粒子模型移动时,顶点也会偏移?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1174

【UNet 改进 | 注意机制篇】UNet引入CA注意力机制(2021 CVPR),二次创新

在医学图像分割任务中,病灶区域往往形态各异、边界模糊,且经常与周围组织的对比度较低,这要求模型具备极强的特征提取和细节辨别能力。传统的U-Net网络虽然通过跳跃连接融合了多尺度特征,但在处理复杂语义和精细边缘时仍有不足,尤其是在捕获特征时常常忽略位置信息。为了解决这些痛点,本文引入了在计算机视觉领域表现出色的 CA(Coordinate Attention,协调注意力)机制。CA 巧妙地将位置信息嵌入到了通道注意力中,通过水平和垂直两个方向的一维池化,同时捕获长距离依赖和精确的位置坐标。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 190

Unity接入抖音小程序侧边栏

Unity接入抖音小程序侧边栏功能实践总结 本文分享了Unity游戏接入抖音小程序侧边栏复访功能的实现过程。针对官方文档不清晰的问题,作者详细介绍了关键实现步骤:通过TT.CheckScene检测侧边栏可用性,利用OnShow事件监听判断用户是否从侧边栏进入,并提供了完整的UI交互代码示例。重点功能包括:检测宿主版本支持、区分侧边栏入口与非侧边栏入口的界面展示、实现跳转侧边栏场景等。文中附有官方文档链接和效果截图,为开发者提供了实用的接入参考方案。

类人_猿的博客 618

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 机器学习实战 | LightGBM建模应用详解
下一篇: 机器学习实战 | 综合项目-电商销量预估进阶方案
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值