基于以下三个原因,选择Python作为实现数据挖掘算法的编程语言:
(1) Python的语法清晰;
(2) 易于操作纯文本文件;
(3) 使用广泛,存在大量的开发文档。
Python具有清晰的语法结构,也被称作可执行伪代码(executable pseudo-code)。
默认安装的Python开发环境已经附带了很多高级数据类型,如列表、元组、字典、集合、队列等,无需进一步编程就可以使用这些数据类型的操作。
使用这些数据类型使得实现抽象的数学概念非常简单。此外,还可以使用自己熟悉的编程风格,如面向对象编程、面向过程编程、或者函数式编程。
Python语言处理和操作文本文件非常简单,非常易于处理非数值型数据。
Python语言提供了丰富的正则表达式函数以及很多访问Web页面的函数库,使得从HTML中提取数据变得非常简单直观。
诸如MATLAB和Mathematica等高级程序语言也允许用户执行矩阵操作,MATLAB甚至还有许多内嵌的特征可以轻松地构造数据挖掘应用,而且MATLAB的运算速度也很快。
然而MATLAB的不足之处是软件费用太高,单个软件授权就要花费数千美元。
虽然也有适合MATLAB的第三方插件,但是没有一个有影响力的大型开源项目。
Java和C等强类型程序设计语言也有矩阵数学库,然而对于这些程序设计语言来说,最大的问题是即使完成简单的操作也要编写大量的代码。
程序员首先需要定义变量的类型,对于Java来说,每次封装属性时还需要实现getter和setter方法。另外还要记着实现子类,为了完成一个简单的工作,必须花费大量时间编写了很多无用冗长的代码。
Python语言则与Java和C完全不同,它清晰简练,而且易于理解,即使不是编程人员也能够理解程序的含义,而Java和C对于非编程人员则像天书一样难于理解。
Python语言是高级编程语言,可以花费更多的时间处理数据的内在含义,而无须花费太多精力解决计算机如何得到数据结果。Python语言使得很容易表达自己的目的。
Python语言唯一的不足是性能问题。Python程序运行的效率不如Java或者C代码高,但是可以使用Python调用C编译的代码。这样,就可以同时利用C和Python的优点,逐步地开发数据挖掘应用程序。
可以首先使用Python编写实验程序,如果进一步想要在产品中实现数据挖掘,转换成C代码也不困难。