数据分析领域是数据挖掘和机器学习技术的舞台。数据挖掘可以视为机器学习和数据库的交叉,它主要利用机器学习界提供的技术来分析数据,利用数据库界提供的技术来管理数据。
机器学习
机器学习是把无序的数据转换成有用的信息。机器学习在统计学的基础上,结合计算机科学和工程技术,将理论转换为行之有效的计算机算法,以探求数据背后的真实含义。机器学习包括监督学习和无监督学习两大类。
注意:传统的机器学习研究并不把海量数据作为处理对象,很多算法和技术是为处理中小规模数据而设计的;如果直接将传统的机器学习技术应用于海量数据,那么实际效果可能很差,甚至根本无法使用。因此,对于当今大数据应用,传统机器学习算法和技术有必要进行针对大数据的改造。
监督学习
如果想要预测目标变量的值,则选择监督学习算法。如果目标变量是离散型,则选择分类算法;如果目标变量是连续型的数值,则选择回归算法。
常见的监督学习算法有:k-近邻算法、朴素贝叶斯算法、支持向量机、决策树、线性回归、局部加权线性回归、Ridge回归、Lasso最小回归系数估计。
无监督学习
如果不想预测目标变量的值,则选择无监督学习算法。如果仅需要将数据划分为离散的组,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则使用密度估计算法。
常见的无监督学习算法有:K-均指、DBSCAN、最大期望算法、Parzen窗设计。
数据库
这里的数据库,并不单指常见的RDBMS(关系型数据库管理系统),而是泛指所有管理数据的实体和手段,包括文件、RDBMS、NoSQL 和 HDFS 等数据管理手段。
文件
文件是最为通用的数据存储和管理手段。应用系统可将数据以 ASCII 文本形式或特定二进制形式保存在文件中。
RDBMS
关系型数据库是创建在关系模型基础上的数据库,是数据存储的传统标准。SQL 是一种基于关系数据库的数据查询语言。
常见的 RDBMS 有:MySQL、Oracle、SQL Server、DB2。
NoSQL
传统的关系型数据库在一些新型应用中表现出较差的性能,例如为海量建立索引、海量数据快速查询等。关系型数据库主要应用于数据规模小而读写频繁,或者数据规模大但极少写访问的事务。
NoSQL 不使用 SQL 作为查询语言,其数据存储也不需要固定的关系模式(行列关系),一般也具备水平扩展的特征。
常见的 NoSQL 有:Cassandra、CouchDB、MongoDB、Redis、HBase。
HDFS
传统数据管理手段,难以应对大数据的挑战。HDFS(Hadoop 分布式文件系统)将传统的数据文件存储在分布式的文件系统中,以满足海量数据一次写入多次读取的实际需求。
参考资料
《数据挖掘与机器学习》,周志华,南开大学
《Machine Learning in Action》,Peter Harrington,Manning Press