《Python数据分析与数据挖掘实战》学习笔记1(数据挖掘基础)

本文是《Python数据分析与数据挖掘实战》学习笔记的第一部分,介绍了数据获取、数据探索、数据预处理、挖掘建模的基础知识。重点讨论了数据取样、缺失值与异常值处理、数据清洗、数据变换以及逻辑回归建模步骤。
摘要由CSDN通过智能技术生成

前言

数据分析是对已知的数据进行分析,然后提取出一些有价值的信息,数据量不会太大;数据挖掘,是指对大量数据进行分析与挖掘,得到一些未知的,潜在的信息;数据挖掘是数据分析的提升。
数据挖掘是:从历史保存的大量数据(包括文本)中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程。它利用各种分析工具在大量数据中寻找其规律和发现模型与数据之间关系的过程,是统计学、数据库技术和人工智能技术的综合。
数据挖掘的基本任务:利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中的商业价值。
数据挖掘建模过程包括:定义挖掘目标、数据取样、数据探索、数据预处理、挖掘建模、模型评价六个步骤。

1、获取数据(获取【爬虫采集或从一些统计网站下载】—>取样)

数据取样是在明确了挖掘目标后,从数据仓库中抽取一个相关的样本子集。通过对数据样本的精选,不仅能减少数据处理量,节省系统资源,还能是规律更容易凸显。
抽取数据的标准,一是相关性,二是可靠性,三是有效性。数据取样的质量一定要把关,若原始数据有误,则很难挖掘探索出数据的规律性。
抽样方法:
1、随机抽样:数据集中的每组观测值都有相同的被抽样的概率;
2、等距抽样:如100组观测值按5%的比例等距抽样,则取第20,40,60,80,100组这5组观测值;
3、分层抽样:首先将样本总体分成若干层,每层中的观测值都有相同的被选用的概率,但不同层可设定不同概率;
4、从起始顺序抽样:从输入数据集的起始处开始抽样;
5、分类抽样:依据某种属性的取值来选择数据子集。

2、数据探索

数据探索和预处理的目的是为了保证样本数据的质量。
数据探索主要包括:数据质量分析(异常值、缺失值、一致性) 和数据特征分析(分布、对比、统计量、相关性、周期性和贡献度)

2.1、缺失、异常值分析

缺失值的处理分为删除存在缺失记录、对可能值进行插补、不处理三种情况。
异常值也称为离群点。指样本中个别值的数值明显偏离其余的观测值。三种常见的离群点分析方法:
(1)简单统计量分析 :使用pandas库中的describe()函数,可以查看数据基本参数(平均值、标准差、最大最小值、25%50%75%三个分位数)
(2)3 δ { \delta} δ原则
(3)箱型图分析

餐饮销售额数据异常值检测代码:
import pandas as pd
#定义路径
catering_sale="E:\\《Python数据分析与挖掘实战》源数据和代码\\Python数据分析与挖掘实战\\chapter3\\demo\\data\\catering_sale.xls"
'''
读取Excel文件
catering_sale=r"\catering_sale.xls"
'''
#读取数据,指定“日期”为索引列
data=pd.read_excel (catering_sale ,index_col=u'日期')
'''
查看数据基本情况:均值,标准差,最小、最大值,分位值
print(data.describe())
'''
import matplotlib.pyplot as plt #导入图像库
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

# 画出箱型图,并把异常数据标出来
plt.figure()
p=data.boxplot(return_type='dict')#画箱型图
x=p['fliers'][0].get_xdata() #fliter为异常值的标签
y=p['fliers'][0].get_ydata()
y.sort() #从小到大排序,直接改变原对象

# 用annotate添加注释
# 其中有些相近的点,注释会出现重叠,难以看清,需要技巧来控制
# 以下参数都是经过调试的,需要具体问题具体调试
for i in range(len(x)):
    if i>0:
     plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05-0.8/(y[i]-y[i-1]),y[i]))
    else:
     plt.annotate (y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i]))

plt.show()

p要指定类型,否则报错不能读取p。故将原句p=data.boxplot( ) 改为 p=data.boxplot(return_type=‘dict’)

2.2、统计量分析

从集中趋势(度量参数:均值、中位数、众数)、离中趋势(极差、标准差、变异系数、四分位数间距)两个方面进行分析
均值对极端值很敏感。可以使用截断均值或中位数来度量数据的集中趋势。

#销售数的统计量情况
import pandas as pd
catering_sale="E:\\《Python数据分析与挖掘实战》源数据和代码\\Python数据分析与挖掘实战\\chapter3\\demo\\data\\catering_sale.xls"
data=pd.read_excel (catering_sale ,index_col=u'日期')
data=data[(data[u'销量']>400)&(data[u'销量']<5000)]
statistics=data.describe
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值