8月开始了研究生学习生涯,现在10月也马上结束了。刚开始对数据挖掘并不是很了解,通过9月、10月的学习对数据挖掘有了一个初步的认识。这两个月主要看了两本书,一本书是易向军的《大嘴巴漫谈数据挖掘》,另一本是董付国的《Python程序语言设计基础》。
一、《大嘴巴漫谈数据挖掘》
《大嘴巴漫谈数据挖掘》这本书从最基本的概率统计学开始,全面、系统、形象而又深入地描述了数据挖掘的基础概念、应用领域以及常用算法。其中每一种数据挖掘算法都辅以通俗易懂的实例,能够在直观性、趣味性中学习算法的具体流程,明白算法的实现过程。通过《大嘴巴漫谈数据挖掘》的学习,可以对数据挖掘的概念、应用和算法技术有一个清晰的理解和认识,并可以熟悉相关统计学的基本原理。对比那些看起来稍显枯燥的数据挖掘的专业书籍,我把这本书作为一本入门书籍看。
这本书基本上涵盖了学习数据挖掘需要掌握的大部分的核心知识点,分为三境17节。第一境总体介绍数据挖掘概况和应用领域,第二境讲解基本概率统计知识,第三境具体描述了数据挖掘常用的十大算法。通过第一境的学习了解到数据挖掘通常被演绎成一个知识发现的过程,也就是去粗存精、去伪存真的过程。首先将数据清理集成并变换为合适处理的形式,然后构建模型获取知识并评估结论的准确性和可靠性,最后使用可视化技术,通过界面交互向用户展现数据挖掘的结果。第二境是概率论和数理统计方面的一些基础知识,其中,概率论包括:概率定义、随机变量和数字特征,数理统计则主要包括参数估计及假设检验两个部分。这一境看起来很顺,因为本科学过概率论。第三境的十个算法分别是:关联规则、决策树、贝叶斯、聚类分析、神经网络、线性回归、逻辑回归、因子分析、信度分析、效度分析。
关联规则挖掘的主要目的在于发现数据中有意义的关联规则。例如著名的购物篮分析就是通过分析顾客的购买行为。来发现不同商品之间的联系。决策树是一个类似于人们决策过程的树结构。从根节点开始,每个分枝代表一个新的决策事件,会生成两个或多个分枝,每个叶子代表一个最终判定所属的类别。利用它能够构建具有预测功能的分类模型。它主要擅长处理非连续性数据,也就是离散化的数据。贝叶斯分类算法以贝叶斯定理为理论基础。聚类分析是一种基于多元统计分析的无监督学习算法,样本类别事先未被标记,即使输入有明确类标号的训练数据,也不能完全确保最终的聚类结果与原始分类之间有明显的对应关系,这也是与决策树和贝叶斯等分类模型最显著的区别。神经网络一般由输入层、隐藏层和输出层组成,并由大量神经元连接而成,每个连接都有一个与之对应的权值,通过调整权值,能够对输入样本进行分类。回归分析主要包括一元线性回归分析、多元线性回归分析和逻辑回归分析等。多元线性回归方程研究一个因变量和多个自变量之间的统计关系。逻辑回归分析可以理解成因变量是定型变量的回归分析。因子分析通过研究原始变量相关系数矩阵或协方差矩阵的内部关系,利用降维的思想,从众多原始变量中构造出少数几个具有代表意义的综合变量。信度:测量结果的稳定性和一致性。效度:测量结果能够达到某种目的的程度。
二、《Python程序设计基础》
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。
像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。
这本书看到了第5章。结合互联网上的资源,了解到Python2和3的区别,作为初学者,选择了Python2.第一章是基础知识包括Python版本、Python的安装使用、使用pip管理安装Python扩展库 (自己安装了一些扩展库,如:numpy,但是在安装matplotlib的过程中遇到了问题,因为它安装之前还要安装其它的东西)等等。第二章是Python序列,主要包括:列表、元组、字典、集合、以及复杂数据结构(堆、队列、栈、链表、二叉树、有向图)。字符串和元组属于不可变序列。第三章是选择与循环,包括:条件表达式,选择结构(单分支、多分支、嵌套、案例),循环结构(for循环、while循环,优化),break和continue语句。第四章是字符串与正则表达式。第五章是函数设计与使用。
可以发现,Python是一种上手很快的高级语言,特别是在学过java、C语言的基础上。而且有很多库函数;Python还能跟其他语言结合使用,因此Python也被称为胶水语言。下面是Python语言的特点:
- 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
- 2.易于阅读:Python代码定义的更清晰。
- 3.易于维护:Python的成功在于它的源代码是相当容易维护的。
- 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
- 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
- 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
- 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- 8.数据库:Python提供所有主要的商业数据库的接口。
- 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
- 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
参考文献:
[1]:易向军.大嘴巴漫谈数据挖掘[M].北京:电子工业出 版社,2014:1-285.
[2]:董付国.Python程序设计基础[M].北京:清华大学出版社,2015:1-148.