一、机器学习简介
1.1、机器学习概念
机器学习就是让机器能像人一样有学习、理解、认识的能力。
机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
机器学习的过程就是通过计算机使算法模型利用输入数据的规律或以往经验进行学习,并对模型进行评估,评估的性能如果达到要求就拿这个模型来测试其他的数据,如果达不到要求就要调整算法来重新建立模型,再次进行评估,如此循环往复,最终获得满意的经验来处理其他的数据。
致力于研究如何通过计算的手段,利用经验(历史数据)来改善系统自身的性能[机器学习]。
从数据中产生模型的算法,即“学习算法”。
1.2、基本术语
学习(训练):从数据中学得模型的过程训练集:参与模型训练的样本集合测试:学得模型后,使用其样本进行预测的过程测试集:被预测的样本集合分类:输出结果是离散值回归:输出结果是连续值监督学习:训练样本有标记无监督学习:训练样本无标记泛化能力:学得模型适用于新样本的能力1.3、机器学习常用的算法
回归算法
线性回归:根据已有数据拟合曲线,常采用的方法是最小二乘法
逻辑回归:一种与线性回归非常类似的算法,但是线性回归处理的是数值问题,而逻辑回归属于分类算法,预测结果是离散的分类
分类算法:有监督学习的方法。
分类算法是通过有类别的训练数据对模型进行训练和评估,再根据评估后的模型对未知类别数据进行分类。主要有KNN算法、朴素贝叶斯算法、SVM支持向量机、逻辑回归、决策树、随机森林等等
聚类算法:聚类是一种无监督学习算法,用于将对象分到高度相似的类中。
常用的聚类方法有KMeans聚类、层次聚类,比较少见的有SOM聚类算法、FCM聚类算法,FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。
推荐算法:推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。
协同过滤推荐算法:有基于用户和基于内容两种
关联规则的算法:将满足支持度与置信度的共同购买的商品推荐给买了其中一种或几种的用户
降维算法:主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。降维算法的主要代表是PCA算法(即主成分分析算法)。
二、Spark MLlib简介
2.1、MLlib简介
MLlib是Spark的机器学习(ML)库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模,同时利用Spark分布式处理来实现模型,处理大数据全量数据的迭代计算。算法工具:常用的学习算法,如分类、回归、聚类和协同过滤。特征化工具:特征提取、转化、降维,和选择工具。管道(Pipeline):用于构建、评估和调整机器学习管道的工具。持久性:保存和加载算法、模型和管道。实用工具:线性代数、统计、数据处理等工具。2.2、MLlib的发展
Spark MLlib历史比较长,在1.0以前的版本即已经包含了,提供的算法实现都是基于原始的RDD。主要有以下几个发展过程。0.8版本时,MLlib算法包被加入Spark,但是只支持Java和Scala两种语言。1.0版本时,Spark MLlib才可以支持Python语言。1.2版本开始Spark机器学习库被分为两个包1.2以后的版本,对MLlib中的算法不断的增加和改进从Spark2.0开始,基于RDD的API进入维护模式(即不增加任何新的特性),并预期于3.0版本的时候被移除出MLlib。2.3、机器学习算法包
Spark MLlib & Spark ML
官网:/docs/latest/ml-guide.html