《python数据分析与挖掘实战》基础概念
数据挖掘的基本任务:利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业竞争力。
数据探索:异常值分析、缺失值分析、相关分析和周期性分析。
数据预处理:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约等。
预测建模:参数设置、交叉验证、模型训练、模型验证、模型预测
常用的数据挖掘建模工具:
1.SAS Enterprise Miner 、2.IBM SPSS Modeler 、3.SQL Server 、4.python、5.WEKA、
6.KNIME、7.RapidMiner、8.TipDM python数据分析工具.png
数据分析工具:
Numpy
python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量较大时,使用列表的速度就会慢的让人难以接受。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数,Numpy还有很多更高级的扩展库的依赖库,Scipy、Matplotlib、Pandas都依赖于它。
Scipy
如果说Numpy让python有了Matlab的味道,那么Scipy就让python真正的成为了半个Matlab了。Numpy提供了多维数组功能,但它只是一般的数组,并不是矩阵。例如,当两个数组相乘时,只是对应元素相乘,而不是矩阵乘法。Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象与函数。
Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微积分方程求解和其他科学与工程中常用的计算,显然,这些功能都是挖掘与建模必备的。
Matplotlib
不论是数据挖掘还是数据建模,都免不了数据可视化的问题。对于python来说Matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图。它不但提供了一整套和Matlab相似但更为丰富的命令,让我们可以非常快捷的用python可视化数据,而且允许输出达到出版质量的多种图像格式。
作图前通常要加载以下代码:
import matplotlib.pyplot as plt导入库
plt.rcParams['font.sans-serif'] = ['SimHei']用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False 用来正常显示负号
plt.figure(figsize = (7,5)创建图像区域,指定比例
plt.show()显示作图结果
Pandas
Pandas是python下最强大的数据分析和探索工具。它包含高级的数据结构和精巧的工具,使得在python中处理数据非常快速简单。Pandas建立在Numpy之上,它使得以Numpy为中心的应用很容易使用。Pandas的功能非常强大,支持类似于SQL的数据增删查改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。
StatsModels
Pandas着眼于数据的读取、处理和探索,而StatsModels则更加注重数据的统计建模分析,它使得python有了R语言的味道。StatsModels支持与Pandas进行数据交互,因此,它与Pandas结合,成了python下强大的数据挖掘组合。
Scikit-Learn
1.所有模型提供的接口有:
model.fit():训练模型,对于监督模型来说是fit(X,y),对于非监督学习是fit(X)
2.监督模型提供的接口:
model.predict(X_new):预测新样本
model.predict_proba(X_new):预测概率,仅对某些模型有用(比如LR)
model.score():得分越高,fit越好
3.非监督模型提供的接口:
model.transfrom():从数据中学的新的“基空间”
model.fit_transfrom():从数据中学的新的基并将这个数据按照这组“基”进行转换
Scikit-Learn本身提供了一些实例数据,比较常见的有安德森鸢尾花卉数据集、手写图像数据集等。我们有一百五十个鸢尾花的一些尺寸的观测值:萼片长度、宽度,花瓣长度和宽度。还有他们的亚属:山鸢尾(Iris setosa)、变色鸢尾(Iris versicolor)和维吉尼亚鸢尾(Iris virginica)
keras
Keras 并非简单的神经网络库,而是一个基于Theano的强大的深度学习库,利用它不仅仅可以搭建简单的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等。由于它是基于Theano的,因此速度也相当快。
必要介绍一下Theano,它也是python的一个库,它是由深度学习专家开发出来的,用来定义,优化和高效地解决多维数组数据对应数学表达式的模拟估计问题。它具有高效的实现符号分解、高度优化的速度和稳定性等特点,最重要的是它还实现了GPU加速,使得密集型数据的处理速度是CPU的数十倍。
用Theano就可以搭建起高效的神经网络模型,但是对于普通读者来说门槛还是相当高的,Keras正是为此而生,它大大的简化了搭建各种神经网络模型的步骤,允许普通用户轻松的搭建并求解具有几百个输入节点的深层神经网络,而且定制的自由度非常大。
Gensim
Gensim是用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等,这些领域的任务往往需要比较多的背景知识
数据探索
根据观测、调差收集到初步的样本数据集后,接下来要考虑的问题是:样本数据集的数量和质量是否满足模型构建的要求?是否出现从未设想过的数据状态?其中有没有什么明显的规律和趋势?各因素之间有什么的关联性?
通过检验数据集的质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据探索有助于选择合适的数据预处理和建模方法。甚至可以完成一些通常由数据挖掘解决的问题。