参考文献:《Python数据分析与挖掘实战》张良均等
数据挖掘建模过程
- 定义挖掘目标:理解任务,确定指标
- 数据采样:注意数据的完整性和有效性
- 数据探索:异常值分析、缺失值分析、相关性分析、周期性分析
- 数据预处理:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约
- 挖掘建模:所属问题分析(分类、聚类、关联规则、时序模式、智能推荐),选用算法
- 模型评价:应用模型对应的评价方法,根据业务对模型进行解释和应用
数据挖掘建模工具
- SAS Enterprise Miner
- IBM SPSS Modeler
- SQL Server
- Python
- WEKA
- KNIME
- RapidMiner/YALE
- TipDM
数据探索
一、数据质量分析
数据预处理的前提,检查数据中是否存在脏数据(缺失值、异常值、不一致的值、重复数据、含特殊符号的数据),箱线图可以检测异常值。
file_name = r'../data/catering_sale.xls'
catering_sale = file_name
data = pd.read_excel(catering_sale, index_col=u'日期') #加载数据
plt.figure()
plt.rcParams['font.sans-serif'] = ['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #正常显示±号
# 画箱线图
p = data.boxplot(return_type='dict')
x = p['fliers'][0].get_xdata() #fliers为异常值标签
y = p['fliers'][0].get_ydata()
y.sort() #对y从小到大排序
for i in range(len(x)):
#处理临界情况, i=0时
temp = y[i] - y[i - 1] if i != 0 else -78 / 3
#添加注释, xy指定标注数据,xytext指定标注的位置(所以需要特殊处理)
plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i] + 0.05 - 0.8 / temp, y[i]))
plt.show()
二、数据特征分析
- 分布分析:解释数据的分布特征和分布类型:频率分布直方图、茎叶图、饼图、条形图
- 定量数据分布分析:求极差、决定组距和组数(极差/组距)、决定分点(分布区间)、列出频率分布表、绘制频率分布直方图。
- 定性数据分布分析:百分比/频数
- 对比分析:折线图
- 统计量分析:均值、中位数、标准差、四分位间距、变异系数 C V = s b x ˉ × 100 CV=\frac{s}{b}\bar{x}×100% CV=bsxˉ×100 Pandas中提供的describe方法可以得到基本统计量
file_name = r'../data/catering_sale.xls'
catering_sale = file_name
data = pd.read_excel(catering_sale, index_col=u'日期')
data = data[(data[u'销量'] > 400) & dat