读书笔记之Python数据分析与挖掘实战

今天也要加油鸭~

  • 这是一份总结的学习笔记
  • 路漫漫其修远兮,吾将上下而求索
  • 可阅读可评论可分享可转载,希望向优秀的人学习

前言

这是对Python数据分析和挖掘实战的读书笔记。书本分为两部分:一部分是理论,一部分是实战。

第一章 数据挖掘基础

  1. 数据挖掘的基本任务:分类和预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等

  2. 数据挖掘建模过程

  • 定义挖掘目标:智能推荐、精准化营销、趋势预测、大数据分析
  • 数据取样:随机采样、等距采样、分层采样、从起始顺序抽样
  • 数据探索 :异常值分析、缺失值分析、相关性分析、周期性分析
  • 数据预处理:数据筛选、数据变量转化、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约
  • 挖掘建模:关联规则、聚类算法、分析和预测算法、整体优化
  • 模型评价
  1. 数据挖掘建模工具:SAS EM、IBM SPSS Modeler、SQL server、python、WEKA、KNIME、RepaidMiner、TipDM

第二章 Python数据分析简介

数据分析工具:Numpy、Scipy、Matlpotlib(数据可视化)、pandas、sklearn、keras、Gensim(处理语言)、StatsModels(统计模型分析)

第三章 数据探索

  1. 数据质量分析:检查原始数据是否存在脏数据(缺失值、异常值、不一致的值和重复数据以及含有特殊符号的数)
  • 缺失值处理:删除、插补和不处理
  • 异常值处理:简单统计量分析、3a原则、箱型图分析、一致性分析
  1. 数据特征分析
  • 分布分析
    A. 求极差
    B. 决定组距与组数
    C. 决定分点
    D. 列出频率分布表
    E. 绘制频率分布直方图
  • 定性数据的分布分析
  • 对比分析:绝对数比较、相对数比较(结构/比例/比较/强度/计划完成程度/动态相对数)
  • 统计量分析
    (1)集中趋势度量:均值、中位数、众数
    (2)离中趋势度量:极差、标准差、变异系数、四分位数间距
  • 周期性分析
  • 相关性分析:分析连续变量之间线性相关程度的强弱,并用适当的统计指标表示
    (1)直接绘制散点图
    (2)绘制散点图矩阵
    (3)计算相关系数:Pearson相关系数、Spearman秩相关系数和判定系数(相关系数的平方)
  • 贡献度分析
  1. 统计特征函数
    sum():求和
    mean():计算算术平均数
    var():计算标准差
    std():计算均值
    corr():计算样本的pearson(spearman)相关系数矩阵
    cov():计算协方差矩阵
    skew()/kurt():计算数据的偏度(三矩阵)/峰度(四矩阵)
    describe():给出样本数据的统计量,包括均值、标准差、最大最小值、分位数等
    cumsum()/cumprod():依次给出前1、2…、n个数的和/积
    cummax()/cummin():依次给出前1、2…、n个数的最大值/最小值
    rolling_sum()/rolling_mean():计算样本的总和(按列)/算术平均数
  • 统计作图函数
    plt.plot()/pie()/hist()/boxplot()
    D.plot(logx = True)/D.plot(log y = True):绘制x或y轴的对数图形
    D.plot(yerr = error):绘制误差条形图

第四章 数据预处理

  1. 数据清洗
    删除原始数据集中无关数据、重复数据,平滑噪声数据,筛选出与挖掘主题相关的数据,处理缺失值、异常值。
  • 处理缺失值:删除记录、数据补插(均值/中位数/众数)和不处理
    a.拉格朗日插值法:
    求已知的过n个点的n-1次多项式
    将缺失的函数值对应的点X代入插值多项式得到缺失值的近似值L(x)
    b.牛顿插值法
    求已知的n个点对(x1,y2),…(Xn,Yn)的所有阶差商公式
    联立以上差商公式建立插值多项式
    将缺失的函数值对应的点X代入插值多项式得到缺失值的近似值L(x)
  • 异常值处理 :删除、视为缺失值、平均值修正、不处理
  1. 数据集成
    数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。
    2.1 实体识别
    从不同的数据源识别出现现实世界的实体,统一不同的源数据的矛盾
    (1)同名异义
    (2)异名同义
    (3)单位不统一
    2.2 冗余属性识别
    数据集成导致数据冗余
    (1)同一属性多次出现
    (2)同一属性命名不一致导致重复
    冗余属性可以用相关分析检测,用相关系数度量一个属性在多程度上蕴含另一个属性。

  2. 数据变换
    对数据进行规范化处理。

    3.1 简单函数变换
    用来将不具有正态分布的数据变换成正态分数的数据。在时间序列分析中,对数变换或者差分运算就可以将非平稳序列转换成平稳序列。
    3.2 规范化(归一化)
    (1)最小-最大规范化(data - data.min())/(data.max() - data.min())
    对原始数据的线性变换,将数值映射到[0,1]之间
    最大最小规范化
    (2)零-均值规范化(data - data.mean())/ data.std()
    经过数据的均值为0,标准差为1
    零-均值规范化
    (3)小数定标规范化data/10**np.ceil(np.log10(data.abs().max))
    通过移动属性值的小数位数,将属性值映射到[-1,1]之间
    小数
    3.3 连续属性离散化
    分类算法如ID3算法、Apriori算法,要求数据是分类属性形式,将连续的属性变为分类属性。
    1.离散化过程
    确定分类数以及如何将连续属性映射到分类值
    2.常用的离散化方法
    (1)等宽法
    将属性的值阈分为具有相同宽度的区间,缺点在于对离群点较敏感,倾向于不均匀把属性值分布到各个区间
    (2)等频法
    将相同数量的记录放进每个区间
    (3)基于聚类分析的方法
    1.将连续属性的值用聚类算法(K-means算法)进行聚类2.将聚类得到的簇进行处理,合并到一个簇的连续属性值并做同一标记。需要用户指定簇的个数,从而决定产生的区间数
    3.4 属性构造
    利用已有的属性集构造出新的属性,并加入到现有的属性集合中
    3.5 小波变换
    具有多分辨率的特点,在时域和频域都具有表征信息局部特征的能力,通过伸缩和平移等运算过程进行多尺度聚焦分析,提供一种非平稳信号的时频分析手段。
    (1)基于小波变换的特征提取方法小波变化小波
    (2)小波基函数
    是一种具有局部支集的函数,并且平均值为0
    (3)小波变换
    对小波基进行伸缩和平移变换

  3. 数据规约
    数据规约产生更小但保持源数据完整性的新数据集;
    4.1 属性规约
    属性规约
    中间三种都是属于直接删除不相关属性(维)方法。主成分分析是一种用于连续属性的数据降维方法,构造了一个原始数据的正交变换,新空间的基底去除了原始空间基底下数据的相关性,只需要少数的新变量就能够解释原始数据的中大部分变异。

import pandas as pd
input = '../data/component'
data = pd.read_excel(input, header = None)
from sklearn.decomposition import PCA
pca = PCA()
pca.fit(data)
pca.components_ #返回模型的各个特征向量
pca.explained_variance_ratio_ #返回各个成分各自的方差百分比,越大说明向量的权重越大
#得到特征方程,查看各个成分各自的方差百分比
pac = PCA(3)
pca.fit(data)
low_d = pca.transform(data) #用它来降低维度,降维结果是low_d

4.2 数值规约
数值规约指通过选择替代的、较小的数据来减少数据量,包括有参数和无参数方法。有参数方法是使用一个模型来评估数据,只需要存放参数,不需存放实际数据,例如回归和对数线性模型;无参数就需要存放实际数据,如直方图、聚类和抽样(采样)。
(1)直方图:使用分箱来近似数据分布,让每个桶代表给定属性的一个连续值域
(2)聚类:将数据元组(记录)视为对象,它将对象划分为簇,使一个簇中的对象相互“相似”,而与其他簇的对象“相异”
(3)抽样:无/有放回简单随机抽样/聚类抽样/分层抽样
(4)参数回归:线性回归/对数线性

  1. python主要数据预处理函数
    预处理

第五章 分类和预测

1. 分类和预测

分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值。

1.1 实现过程
(1)分类
建立在已有类标记的数据集上,输入样本的属性值,输出对应的类别,将每个样本映射到预定先定义好的类别。
(2)预测
建立两种或者两种以上变量间相互依赖的函数模型,然后进行预测或控制。
(3)实现过程
学习步,归纳分析训练样本集来建立分类模型得到分类规则;
分类步,先有已知的测试样本集评估分类规则的准确率,对未知 类标号的待测样本集进行预测。

1.2 常用的分类与预测算法
回归分析:确定预测属性(数值型)与其他变量间相互依赖的定量关系。

  • 当自变量出现多重共线性时,用最小二乘估计的回归系数会不准确,消除多重线性的-参数改进的估计方法主要有岭回归和主成分回归
  • 根据挖掘目的设置特征,并筛选特征——>列出回归方程——>估计回归系数——>模型检验——>预测控制
  • 特征筛选:F检验、递归特征消除REF(反复构建模型选出最好的特征,把选出的特征放在一边,在剩余特征上重复这个过程,直到遍历所有特征)和稳定性选择(基于二次抽样和选择算法相结合)
import pandas as pd
data = pd.read_excel('./banloan.xls')
x = data.iloc[:, :8].as_matrix()
y = data.iloc[:, 8].as_matrix()

from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
rlr = RLR()  #建立随机逻辑回归模型,筛选变量
rlr.fit(x, y) #训练模型
rlr.get_support() #获取特征筛选结果

lr = LR() #建立逻辑货柜模型
lr.fit(x, y) #用筛选后的特征数据来训练模型
print('平均正确率:%s' %lr.score(x,y)) #给出模型的平均正确率

决策树:采用自顶向下的递归方式,在内部节点进行属性值的比较,并根据不同属性值从该节点向下分支,最终得到的叶节点是学习划分的类。

  • 核心问题是在每一步如何选择适当的属性对样本做拆分。自上而下,分而治之。
  • ID3算法、C4.5算法、CART算法

人工神经网络:是一种模仿大脑神经网络结构和功能而建立的信息处理系统,表示神经网络的输入和输出变量之间关系的模型。
贝叶斯网络:信度网络,是Bayes方法的扩展,支持不确定知识表达和推理领域。
支持向量机:通过某种非线性的映射,把低维的非线性可转化为高维的线性可分,在高维空间进行线性分析。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值