学校期末商业数据分析课程考试重点

编程入门 行业动态 更新时间:2024-10-03 00:24:27

学校<a href=https://www.elefans.com/category/jswz/34/1769634.html style=期末商业数据分析课程考试重点"/>

学校期末商业数据分析课程考试重点

商业数据分析

文章是根据老师划的重点整理的,如有不完善的地方可以联系我修正。

一、数据分析

数据分析的基本概念

从已有的数据中,利用统计挖掘等方法,提取隐含规则辅助决策

数据分析应用场景

  1. 客户分析
  2. 营销分析
  3. 社交媒体分析
  4. 设备管理

数据分析过程

  1. 定义分析目标

  2. 数据取样

  3. 数据探索

  4. 数据预处理

  5. 分析建模

  6. 模型评价

二、数据质量分析

脏数据

  1. 缺失值
  2. 异常值
  3. 不一致的值
  4. 重复数据及含有特殊符号(如#、¥、*)的数据

脏数据产生的原因

  1. 有些信息暂时无法获取,或者获取信息的代价太大
  2. 有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写或对数据理解错误等一些人为因素而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障等机械原因而丢失。
  3. 属性值不存在。在某些情况下,缺失值并不意味着数据有错误,对一些对象来说属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入状况等。

数据的缺失影响

  1. 数据挖掘建模将丢失大量的有用信息
  2. 数据挖掘模型所表现出的不确定性更加显著,模型中蕴涵的确定性成分更难把握
  3. 包含空值的数据会使挖掘建模过程陷入混乱,导致不可靠的输出

异常值分析

异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。

异常值分析方法
  1. 简单统计量分析

  2. 3σ原则

    与平均值的偏差超过三倍标准差的值:正常取值几乎全部集中在**(μ-3σ,μ+3σ)**区间内,超出这个范围的可能性仅占不到0.3%。

    # 计算均值
    mean = df['value'].mean
    # 计算标准差
    std = df['value'].std
    # 识别异常值
    error = df[np.abs(df['value'] - mean) > 3*std]
    # 剔除异常值,保留正常的数据
    data_c = df[np.abs(df['value'] - mean) <= 3*std]
    
  3. 箱型图分析

相关系数

餐饮销量数据和节假日、天气等因素都可能有关系,使用相关性分析可以得到餐饮销量数据和其他因素的相关性,其Python代码如下所示:

import pandas as pd
data = pd.read_excel('catering_sale_all.xls', index_col = u'日期')
data.corr() #相关系数矩阵
data.corr()[u'百合酱蒸凤爪']
#列与列之间的相关系数
corr=data[u'百合酱蒸凤爪'].corr(data[u'翡翠蒸香茜饺'])

三、数据预处理

主要任务

数据清洗

数据清洗主要是删除原始数据集中的无关数据重复数据平滑噪声数据处理缺失值异常值等。

  • 拉格朗日插值法

一道计算题

题目会给你几个点(大概率是三个点),让你预测某一个x所对应的y值应该是多少?

例如:(10,1),(15,1.1761),(20,1.3010)求(12,?)

第一步:

对每一个点有 l(x) 就是x的值相互减
( x − 15 ) ( x − 20 ) ( 10 − 15 ) ( 10 − 20 ) \frac{(x-15)(x-20)}{(10-15)(10-20)} (10−15)(10−20)(x−15)(x−20)​

( x − 10 ) ( x − 20 ) ( 15 − 10 ) ( 15 − 20 ) \frac{(x-10)(x-20)}{(15-10)(15-20)} (15−10)(15−20)(x−10)(x−20)​

( x − 10 ) ( x − 15 ) ( 20 − 10 ) ( 20 − 15 ) \frac{(x-10)(x-15)}{(20-10)(20-15)} (20−10)(20−15)(x−10)(x−15)​

第二步:

对应的y * 对应的式子l(x)
1 ∗ ( x − 15 ) ( x − 20 ) ( 10 − 15 ) ( 10 − 20 ) + 1.1761 ∗ ( x − 10 ) ( x − 20 ) ( 15 − 10 ) ( 15 − 20 ) + 1.3010 ∗ ( x − 10 ) ( x − 15 ) ( 20 − 10 ) ( 20 − 15 ) 1*\frac{(x-15)(x-20)}{(10-15)(10-20)}+1.1761*\frac{(x-10)(x-20)}{(15-10)(15-20)}+1.3010*\frac{(x-10)(x-15)}{(20-10)(20-15)} 1∗(10−15)(10−20)(x−15)(x−20)​+1.1761∗(15−10)(15−20)(x−10)(x−20)​+1.3010∗(20−10)(20−15)(x−10)(x−15)​
将x换成我们题目要求的12就算出了要求的值 ?

  • 异常值处理常用方法
异常值处理方法方法描述
视为缺失值将异常值视为缺失值,利用缺失值处理的方法进行处理。
平均值修正可用前后两个观测值的平均值修正该异常值。
不处理直接在具有异常值的数据集上进行挖掘建模。
删除含有异常值的记录直接将含有异常值的记录删除。
数据集成
  • 合并数据
  1. Merge
import pandas as pd
df1=pd.DataFrame({'key':['a','b','d'],'data1':range(3)}) 
df2=pd.DataFrame({'key':['a','b','c'],'data2':range(3)})
pd.merge(df1,df2) 
pd.merge(df1,df2,how='outer')#多键连接
right=pd.DataFrame({'key1':['foo','foo','bar','bar'], 'key2':['one','one','one','two'], 'lval':[4,5,6,7]})
left=pd.DataFrame({'key1':['foo','foo','bar'], 'key2':['one','two','one'], 'lval':[1,2,3]}) pd.merge(left,right,on=['key1','key2'],how='right')#列名不同,分别指定
df3=pd.DataFrame({'key3':['foo','foo','bar','bar'],'key4':['one','one','one','two'], 'lval':[4,5,6,7]}) 
pd.merge(left,df3,left_on='key1',right_on='key3',how='right')
  1. Join
import pandas as pd
left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']},index=['K0', 'K1', 'K2'])
right = pd.DataFrame({'C': ['C0', 'C2', 'C3'],'D': ['D0', 'D2', 'D3']},index=['K0', 'K2', 'K3'])left.join(right)
数据变换
数据规约

四、绘制图形

折线图

import matplotlib.pyplot as plt#读入数据
meal_order_df = pd.read_excel("meal_order_info.xls",encoding="gbk")df2 = meal_order_df.groupby('org_id')[['expenditure']].sum()
#设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# fig = plt.figure()
ax = plt.figure().add_subplot(1,1,1)
#df2.index=[304, 310, 328, 329, 330]
# ax.plot(df2, marker='o', label='营业额')
df2.plot(ax=ax, marker='o', label='营业额')
ax.set_title('分店营业额')
ax.set_ylabel("营业额",rotation=30)
ax.set_xticks(df2.index)
ax.set_xticklabels([('分店1')[::-1],'分店2','分店3','分店4','分店5'],rotation=0, fontsize='small')

柱形图

#读入数据
detail_df=pd.read_excel('detail.xls',encoding='utf-8')caipin=detail_df[['place_order_time','dishes_name','amounts']]
df3=caipin.groupby('dishes_name').sum().sort_values(by='amounts',ascending=False).head(10)
#设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsefig = plt.figure()
ax = fig.add_subplot(1,1,1)(df3.cumsum()/5).plot(marker='o',ax=ax,label='菜品累加销量')
# ax.plot((df3.cumsum()/5),marker='o',label='菜品累加销量')
df3.plot.bar(ax=ax,label='单品销量')
ax.set_title('贡献度分析')
ax.set_ylabel("营业额",rotation=30)
ax.set_xlabel("菜品",rotation=30)

更多推荐

学校期末商业数据分析课程考试重点

本文发布于:2024-02-28 00:49:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766829.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:期末   重点   课程   学校   商业

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!