Python-BUSS 6002

BUSS 6002 Data Science in Business 同步拓展课 2 Tutor: Andrew 全球累计服务用户超十万 ·让海外学习更轻松· 同学们 有问题 怎么办 1.点【参会者】 2.点【举手】即可与老师实时互动 3.问题被解答了还可以【手放下】 4.点【聊天】/【Chat】就可以与老师实时文字互动哦 文字提问 方法二 红圈处输入问题提问 同学们 有问题 怎么办 :直播平台 互动方法 本章节知识点 知识点1 要求分析 知识点2 思路整理 知识点3 分析思路和代码方法 知识点4 细节补充及答疑 1. 要求分析 1. 总体要求(与上次一致) 所有图表、分析都必须使用 Python 完成、必须使用Jupyter Notebook (.ipynb) Late Penalty为从到期日开始每天5%。 作业是匿名批改的。 Collusion(同学之间讨论合作完成) and plagiarism(抄袭)一定会被阅卷人发现, 对此零容忍。 请一定不要抄袭,小幅度改写,过度参考他人代码,英文分析语句的写法, 分析结构的命名模式; 本学期在这个环节会按照最高规格的态势对待。 1. 要求分析 2. 任务要求 截止时间: 悉尼时间 5月31日 23:59 所占权重: 20% 最长词数: 1000 – 1500 words (大于1500 words后不再算分) 临近提交时论坛中会出现一个词数检验工具(同上一次一样) 提交文件: 1. 一份Report(.pdf) 2. 一份Jupyter Notebook (.ipynb) 1. 要求分析 2.1 任务要求的一些细节注意 1. 允许的Python工具包– 在本次没有提及,但是是不是完全不限制功能包目前 是不确定的(公告里没有说),建议和他们进行确认; 2. 提交作业文件的命名规则– 在本次也没有提及。结合我的经验应该是公告忘 了,后期应该会补充上,大家持续关注。 2. 思路整理 1. Problem Background 问题背景(结合自己手中的原材料看) 一群热爱咖啡的The University of Coffee大学校友在校园内成功开设了一家咖啡馆, 名为“咖啡市咖啡(Cafe In Coffee City)”,只在晚上营业。 不幸的是,很难预测需求,咖啡馆经常人满为患或人手不足。咖啡馆老板聘请了一 名顾问进行探索性分析(exploratory analysis),以确定是否可以建立一个模型来预测 需求。(初步判断我们的模型类型属于Predictive Model) 顾问报告说无法建立这样的模型。但是咖啡店老板主认为顾问没有做足够详细的工 作,并要求我们提供第二意见。 CICC位于学校Ring Library旁边; CICC的营业时间为每周 7 天的晚上 7 点至凌晨 1 点。 CICC的门店流水记录是从 2019 年 7 月 22 日到 2019 年 12 月 22 日。除了收集1. 购 买相关信息外,每个客户还被要求选择2.Ta在校园的哪个地方学习以及3.是否下雨 (通过收银台以及微信小程序)。 2. 思路整理 2. Tasks 具体任务 任务一 顾问调查了三个可能影响每小时收入的因素。 附上他们的介绍和代码。 然而,他们 的分析和呈现并不符合标准。 对于以下每个因素,纠正问题并提供您工作的简要描述和理由(大约写1段,每个写 一段)。 顾问的代码已作为起点包含在数据文件夹中。 2. 思路整理 2. Tasks 具体任务 任务二 建立一个模型来预测每小时的咖啡销量。这里的模型构建应包括: 1. 变量预处理或转换的描述 2. 模型系数的解释 3. 模型诊断分析以确认模型的适用性 4. 解释如何解释和/或后处理来自模型的预测 作为此过程的一部分,我们可能需要完成额外的 EDA分析 2. 思路整理 3. Data Set 数据集 1. 已提供的 ipynb 文件,主要用于完成T1 2. 一份前顾问制作的敷衍PPT,主要用于完成T1 3. 一个 CSV, 是本次任务的主数据集 4. 一个 Data Dictionary(提供的这份文件是一年前的旧文件,没有变更) 4. Recommended Structure 推荐结构 这里的推荐指的包含缩写Report 和 ipynb代码内容 本次代码文件没有字数限制,但仍然需要遵循之前的代码要求 分析思路与代码方法 请注意:所演示数据为Tutor随机生成数据 3. 分析思路和代码方法 任务一 顾问调查了三个可能影响每小时收入的因素。 对于以下每个因素,纠正问题并提供您工作的简要描述和理由(大约写1段,每个写一段)。 因子 问题 任务 时节因子 这些图表质量不合格 按照专业标准重新创建这些图表 自开业以来的天数 为了适应本学期学习的预测模型之一, 我们需要transform这个因子,使其与 因变量具有线性关系 应用您选择的转换并直观地呈现线性 关系以确认它是合适的 客户位置 呈现的图表没有捕捉到与另一个变量 的交互 调查哪个变量与位置交互以影响每小 时销售额并直观地呈现这种关系 3. 分析思路和代码方法 任务一 因子 问题 任务 时节因子– 理解为时间因子 这些图表质量不合格 按照专业标准重新创建这些图表 3. 分析思路和代码方法 任务一 因子 问题 任务 时节因子– 理解为时间因子 这些图表质量不合格 按照专业标准重新创建这些图表 一个合格的EDA图表需要有哪些因素 1. 标题 – plt.title() 2. X,y轴 – plt.xlabel(‘变量名(单位)’) plt.ylabel 3. 合适的图形大小和画质 – plt.figure(figsize = (10, 5),dpi = 200) 4. Legend – plt.legend (要分清哪些图需要那些图不需要) 5. 图片的命名规格为 Figure X. 从头到尾要持续 3. 分析思路和代码方法 任务一 因子 问题 任务 时节因子– 理解为时间因子 这些图表质量不合格 按照专业标准重新创建这些图表 3. 分析思路和代码方法 任务一 因子 问题 任务 时节因子– 理解为时间因子 这些图表质量不合格 按照专业标准重新创建这些图表 一个合格的EDA图表需要有哪些因素 1. 标题 – plt.title() 2. X,y轴 – plt.xlabel(‘变量名(单位)’) plt.ylabel 3. 合适的图形大小和画质 – plt.figure(figsize = (10, 5),dpi = 200) 4. Legend – plt.legend (要分清哪些图需要那些图不需要) 5. 图片的命名规格为 Figure X. 从头到尾要持续 3. 分析思路和代码方法 任务一 因子 问题 任务 自开业以来的天数 为了适应本学期学习的预测模型之一, 我们需要transform这个因子,使其与 因变量具有线性关系。 应用您选择的转换并直观地呈现线性 关系以确认它是合适的 3. 分析思路和代码方法 任务一 因子 问题 任务 自开业以来的天数 为了适应本学期学习的预测模型之一, 我们需要transform这个因子,使其与 因变量具有线性关系。 应用您选择的转换并直观地呈现线性 关系以确认它是合适的 我们学过的所有transform方法 1. Log Transformation 2. Polynomial Transformation 3. Scale/Regularization 3. 分析思路和代码方法 我们学过的所有transform方法 1. Log Transformation 2. Polynomial Transformation 3. 分析思路和代码方法 我们学过的所有transform方法 2. Polynomial Transformation sklearn.preprocessing.PolynomialFeatures: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html numpy.polyfit https://numpy.org/doc/stable/reference/generated/numpy.polyfit.html 3. 分析思路和代码方法 我们学过的所有transform方法 2. Polynomial Transformation sklearn.preprocessing.PolynomialFeatures: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html numpy.polyfit https://numpy.org/doc/stable/reference/generated/numpy.polyfit.html 3. 分析思路和代码方法 任务一 因子 问题 任务 客户位置 呈现的图表没有捕捉到与另一个变量 的交互 调查哪个变量与位置交互以影响每小 时销售额并直观地呈现这种关系 客户位置– 这一数据的数据类型是什么,那种数据可能跟 它有关系 3. 分析思路和代码方法 任务一 因子 问题 任务 客户位置 呈现的图表没有捕捉到与另一个变量 的交互 调查哪个变量与位置交互以影响每小 时销售额并直观地呈现这种关系 https://towardsdatascience.com/3-awesome-visualization-techniques-for-every-dataset-9737eecacbe8 还有Clustering(未展示) 3.分析思路和代码方法 任务二 建立一个模型来预测每小时的咖啡销量。这里的模型构建应包括: 1. 变量预处理或转换的描述 (可能需要再次做一个EDA,这属于是标准流程) 2. 模型系数的解释 (Week 6 线性回归系数解读) 3. 模型诊断分析以确认模型的适用性 (Week 6 线性回归假设性检验) 4. 解释如何解释和/或后处理来自模型的预测 3.分析思路和代码方法 任务二 – 建立一个模型来预测每小时的咖啡销量: 1. 变量预处理或转换的描述 (可能需要再次做一个EDA,这属于是标准流程) 这里所做的内容基本与第一次比较相似,但是需要带着一定目的性的着重分析你 认为重要的Feature. 这里应该是会用到Group by, 在提供的code.ipynb中有几个变量需要重点参考. 针对周几,下雨与否这些Categorical 类数据我们学过的方法是get dummies,也 可以Label 化,即把Mon, Tues, …转为 1, 2, 但这个方法可能会有弊端。 Creating a regression model using Day of Week, Hour of Day, and Type of Media https://stackoverflow.com/questions/56911359/creating-a-regression-model-using-day-of-week-hour-of-day-and-type-of- media 3.分析思路和代码方法 任务二 建立一个模型来预测每小时的咖啡销量: 2. 模型系数的解释 (Week 6 线性回归系数解读) 1. 线性模型的各个系数; 2. P值,t值之类的参数 https://towardsdatascience.com/interpretation-of-linear-regression-dba45306e525 3.分析思路和代码方法 任务二 建立一个模型来预测每小时的咖啡销量: 3. 模型诊断分析以确认模型的适用性 (Week 6 线性回归假设性检验) 线性回归的假设性检验 https://www.hackdeploy.com/assumptions-of-linear-regression-with-python/ 假设性检验回顾. Residual Dignostics 回归分析的五个假设: LINE 1. 线性性 & 可加性 Linearity 2. 误差项(ε)之间应相互独立(无自相关性Autocorrelation) Independence 3. 自变量(X1,X2)之间应相互独立。 4. 误差项(ε)的方差应为常数。同方差性(Homoskedasticity) Equal variance 5. 误差项(ε)应呈正态分布。(QQ plot)Normality 假设检验: Fitted values – 预测的y值 Linearity: 检查 Fitted values against residuals 如果是符合Linearity,则此图应该没有 linear pattern 假设性检验回顾. Residual Dignostics 假设检验: Fitted values – 预测的y值 Independence : 检查 plot vs +1 或 plot vs +2 Equal variance: Squared or absolute residuals against fitted values. 如果是符合Equal variance (同方差性Homoskedasticity),则此图差余项应 该没有pattern并且收敛于一个区域内。 否则,我们则称有异方差性 heteroscedasticity Normality: QQ plot QQ plot 如果更像一个线性图形则证明残差项符合正态分布 3.分析思路和代码方法 任务二 建立一个模型来预测每小时的咖啡销量 4. 解释如何解释和/或后处理来自模型的预测 更多地是联系实际问题,比如我现在可以根据客观条件推算出每个小时的营业额, 根据这个制定员工排班次的机制; 可以假设一个情景,然后带入之后计算一下结果是什么,再去解释这意味着什么, 我们可以用这个数据干什么。 4. 细节补充 T1 (35%): 所有三个因素都达到了高标准 对应的问题都解决了,讨论过 图片专业且清晰 符合EDA标准 标号,清晰度,标题,颜色等细节 文字表达是准确的、描述性的,并在需要时包括 Notebook还是有该有的Markdown描述和#解释性表达 Report 有很好的连接词,阐述每一步的目的和方法 4. 细节补充 T2 (50%): 模型描述包括所有必需的组件,例如预处理、解释、评估和预测程序 可以参照KDDA模型工序,检查自己有没有每一步都有体现 描述和评估准确而详细 阐述清楚每一步的动机是什么 标号,清晰度,标题,颜色等细节 展示的工作展示了高级分析,例如模型选择和/或对缺点和限制的讨 Model Selection, 用的是什么方法选模型,Train-test split 是怎么分的,有没有 Validation Shortcoming以及Further work (数据量、特征选择、模型在实际应用不尽人意的地方) 回顾CRISP DM Business Understanding (BU) 1. 确定商业目标与成功标准(Success Measures)评估当 前状态 2. 定义利益相关者(Stakeholders) 3. 明确这个商业将要产生的Questions and Opportunities Data Understanding (DU) – 注意:只是看看原数据(我们不对数据做改变,不计算, 不删除,不轻易下定论) 1. Exploratory data analysis (EDA) 【这门课必会技能 Python】 2. Correlation analysis 【Python Cor Cov 检查】 3. Examine the data quality (有没有数据问题) 【Python .info isnull()功能等】 【新内容】Metadata – data about data – 理解Dataset中特征(Features)的商业意义; – 提供有关数据中任何Data Quality的线索,以及是否存在 任何先前已知的需要解决的数据质量问题。 回顾CRISP DM Date Preparation (DP) –一切行为都需要论证 1. 数据清洗(Data Cleaning: removing duplicates, and adjusting for missing data, outliers, and noise) 2. 数据增加(There will be cases where you may have to construct new data) 3. 数据离散或数据聚合 discretize data or impute data Modelling 1. Selecting the appropriate modeling technique to work with the data 2. Developing a train set and test design (Train Test Split) 3. Conducting an assessment of the models【这一步很重要, 因为可能会和Evaluation混淆,需要注意,我们在这一 部一定是有Multiple Models or Model Family,我们在这 一部需要制定统计学上的performance measures (2, RMSE等),选择在这个统计学标准下表现最好的模型】 回顾CRISP DM Evaluation 1. 回顾构建模型的过程 审查是否在建模过程中考虑了所有相关因素,并分析是否 忽略了可能影响模型结果的任何关键方面 2. Quality assessment (QA) – 确保正确选择了特征,并且没有意外遗漏任何特征。 – QA 还确保模型中没有固有的偏差(No Bias),并且模型结 果可复现。 3. 决定是否完成项目并进入 Deployment – Business Goal is settled or not Deployment 1. 项目实施 2. 项目监控 3. 项目反馈 回顾 CRISP DM, 以数据报告的结构为例 Business Understanding (BU) – 知道问题 Data Understanding (DU) – 只是看看原数据(Distribution, quality, describe) Date Preparation (DP) – Feature Engineering – 数据处理 Modelling Evaluation Deployment Phase 请大家重视在个人作业中体现这个过程 连续三学期作业中CRISP DM占大额分数 回顾 Snail Shell KDDA Process Model 重点: 1. 蜗牛壳KDDA以 CRISP – DM为基础构建 2. 蜗牛壳KDDA有8 Stages,比CRISP DM多两 个步骤 3. 蜗牛壳KKD多了Problem formulation 和 Maintenance 这两个步骤 4. 蜗牛壳KDDA 是Continuous iteration 不停不 休 5. 蜗牛壳KDDA 拥有Inter-relationship between every phase 4. 细节补充 Report Presentation (10%) : The figures or tables produced are appropriate and support the analysis. 没有和分析内容不相关的图表 The figures produced are of high visual quality, are well appointed and easy to read. 对于图表的各个细节有要求: 名称,单位,编号,颜色等 Written language demonstrates outstanding precision, clarity, and concision. 分析语言简洁凝练 4. 细节补充 Notebook (5%): Notebook可以顺利运行,分析是可重复的,并且可以被其他人复制。 所有分析结果(表格、图表等)均由 Notebook 中的代码生成。 Jupyter Notebook 的布局和格式都很好。 代码清晰、一致、遵循最佳实践、描述和评论非常好。