文章目录
数据科学的场景
1、客户
客户获取与挽回
客户细分与透视
交叉销售/提升销售与事件触发
客户流失与防范
2、运营
战略绩效管理和运营KPI
库存管理与渠道优化
现金管理与优化
人力资源计划与管理
IT管理
3、风险
信用风险
欺诈识别与防范
市场与流动性风险
操作风险
4、财务
预算与计划
资产负债管理
作业成本管理
数理统计方法
1、简单统计
变量组合 | 数值统计 | 直方图 | 条形图 | 饼图 | 折线图 |
---|---|---|---|---|---|
单个分类变量 | 频次(value_count ) |
√ | √ | ||
单个连续变量 | 分布(hist) | √ | |||
多个分类变量 | 组合频次(crosstab ) |
√ | √ | ||
分类变量+连续变量 | 分组聚合 (groupby /pivot_table + sum, avg, min, max, std) |
√ | √ | ||
多个连续变量 | 相关性corr、联合分布密度 | ||||
时间序列 | √ |
2、统计检验(statemodels)
预测变量X \ 被预测变量Y | 分类(二分) | 连续 | |
单个变量 | 分类(二分) | 列联表分析/卡方检验 | 双样本T检验 |
分类(多个分类) | 列联表分析/卡方检验 | 单因素方差分析 | |
连续 | 双样本T检验 | 相关分析 | |
多个变量 | 分类 | 逻辑回归 | 多因素方差分析/线性回归 |
连续 | 逻辑回归 | 线性回归 |
数据挖掘的技术与方法
- 常用的库
statemodels 统计分析
sklearn 机器学习
tensorflow 深度学习
pyspark ML 分布式机器学习
pyspark graphframes 复杂网络
- 常见的有监督模型
变量描述
变量类型
1、名义变量
2、等级变量(例如,小、中、大)
3、连续变量
等级变量
- 将分类变量转换为等级变量
dat1.dist=dat1.dist.astype("category")
dat1.dist.cat.set_categories(["low","middle","high"],inplace=True) # 将等级变量按照 low、middle、high的顺序排序
#排序后绘制箱线图
sns.boxplot(x='dist',y='price',data=dat1)
连续变量的描述
1. 集中趋势(位置)
平均数、中位数/分位数、众数、直方图
1.1 平均值
mean = data['sepal_length'].mean()
1.2 中位数
median = data['sepal_length'].median()
1.3 分位数
- pandas 和 numpy中都有计算分位数的方法,pandas中是quantile,numpy中是percentile
- 两个方法其实没什么区别,用法上稍微不同,quantile的优点是与pandas中的groupby结合使用,可以分组之后取每个组的某分位数
(quantile方法 和 percentile方法 计算结果是一样的)
# numpy中的 percentile代码:
import numpy as np
a = array(data['gmv'])
np.percentile(a, 0.4)
np.percentile(a, [0.25, 0.5, 0.75])
# pandas中的 quantile代码:
import pandas as pd
# data = pd.read_csv('order_rank_p_0409.txt',sep='\t')
grouped=data.groupby(['id_1','id_2'])
grouped['gmv'].quantile(0.4) # 注意:取某个维度下 每个分类的分位数 --> 先做 groupby
# x.to_csv('order_ran_re.txt',sep= '\t'