学习笔记Spark(九)—— Spark MLlib应用(1)—— 机器学习简介、Spark MLlib简介
一、機(jī)器學(xué)習(xí)簡介
1.1、機(jī)器學(xué)習(xí)概念
-
機(jī)器學(xué)習(xí)就是讓機(jī)器能像人一樣有學(xué)習(xí)、理解、認(rèn)識的能力。
-
機(jī)器學(xué)習(xí)是一門人工智能的科學(xué),該領(lǐng)域的主要研究對象是人工智能,特別是如何在經(jīng)驗(yàn)學(xué)習(xí)中改善具體算法的性能。
-
機(jī)器學(xué)習(xí)的過程就是通過計(jì)算機(jī)使算法模型利用輸入數(shù)據(jù)的規(guī)律或以往經(jīng)驗(yàn)進(jìn)行學(xué)習(xí),并對模型進(jìn)行評估,評估的性能如果達(dá)到要求就拿這個(gè)模型來測試其他的數(shù)據(jù),如果達(dá)不到要求就要調(diào)整算法來重新建立模型,再次進(jìn)行評估,如此循環(huán)往復(fù),最終獲得滿意的經(jīng)驗(yàn)來處理其他的數(shù)據(jù)。
-
致力于研究如何通過計(jì)算的手段,利用經(jīng)驗(yàn)(歷史數(shù)據(jù))來改善系統(tǒng)自身的性能[機(jī)器學(xué)習(xí)]。
-
從數(shù)據(jù)中產(chǎn)生模型的算法,即“學(xué)習(xí)算法”。
1.2、基本術(shù)語
- 學(xué)習(xí)(訓(xùn)練):從數(shù)據(jù)中學(xué)得模型的過程
- 訓(xùn)練集:參與模型訓(xùn)練的樣本集合
- 測試:學(xué)得模型后,使用其樣本進(jìn)行預(yù)測的過程
- 測試集:被預(yù)測的樣本集合
- 分類:輸出結(jié)果是離散值
- 回歸:輸出結(jié)果是連續(xù)值
- 監(jiān)督學(xué)習(xí):訓(xùn)練樣本有標(biāo)記
- 無監(jiān)督學(xué)習(xí):訓(xùn)練樣本無標(biāo)記
- 泛化能力:學(xué)得模型適用于新樣本的能力
1.3、機(jī)器學(xué)習(xí)常用的算法
-
回歸算法
線性回歸:根據(jù)已有數(shù)據(jù)擬合曲線,常采用的方法是最小二乘法
邏輯回歸:一種與線性回歸非常類似的算法,但是線性回歸處理的是數(shù)值問題,而邏輯回歸屬于分類算法,預(yù)測結(jié)果是離散的分類 -
分類算法:有監(jiān)督學(xué)習(xí)的方法。
分類算法是通過有類別的訓(xùn)練數(shù)據(jù)對模型進(jìn)行訓(xùn)練和評估,再根據(jù)評估后的模型對未知類別數(shù)據(jù)進(jìn)行分類。主要有KNN算法、樸素貝葉斯算法、SVM支持向量機(jī)、邏輯回歸、決策樹、隨機(jī)森林等等 -
聚類算法:聚類是一種無監(jiān)督學(xué)習(xí)算法,用于將對象分到高度相似的類中。
常用的聚類方法有KMeans聚類、層次聚類,比較少見的有SOM聚類算法、FCM聚類算法,FCM算法是一種以隸屬度來確定每個(gè)數(shù)據(jù)點(diǎn)屬于某個(gè)聚類程度的算法。 -
推薦算法:推薦算法的主要特征就是可以自動(dòng)向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。
協(xié)同過濾推薦算法:有基于用戶和基于內(nèi)容兩種
關(guān)聯(lián)規(guī)則的算法:將滿足支持度與置信度的共同購買的商品推薦給買了其中一種或幾種的用戶 -
降維算法:主要作用是壓縮數(shù)據(jù)與提升機(jī)器學(xué)習(xí)其他算法的效率。通過降維算法,可以將具有幾千個(gè)特征的數(shù)據(jù)壓縮至若干個(gè)特征。降維算法的主要代表是PCA算法(即主成分分析算法)。
二、Spark MLlib簡介
2.1、MLlib簡介
- MLlib是Spark的機(jī)器學(xué)習(xí)(ML)庫,旨在簡化機(jī)器學(xué)習(xí)的工程實(shí)踐工作,并方便擴(kuò)展到更大規(guī)模,同時(shí)利用Spark分布式處理來實(shí)現(xiàn)模型,處理大數(shù)據(jù)全量數(shù)據(jù)的迭代計(jì)算。
- 算法工具:常用的學(xué)習(xí)算法,如分類、回歸、聚類和協(xié)同過濾。
- 特征化工具:特征提取、轉(zhuǎn)化、降維,和選擇工具。
- 管道(Pipeline):用于構(gòu)建、評估和調(diào)整機(jī)器學(xué)習(xí)管道的工具。
- 持久性:保存和加載算法、模型和管道。
- 實(shí)用工具:線性代數(shù)、統(tǒng)計(jì)、數(shù)據(jù)處理等工具。
2.2、MLlib的發(fā)展
- Spark MLlib歷史比較長,在1.0以前的版本即已經(jīng)包含了,提供的算法實(shí)現(xiàn)都是基于原始的RDD。主要有以下幾個(gè)發(fā)展過程。
- 0.8版本時(shí),MLlib算法包被加入Spark,但是只支持Java和Scala兩種語言。
- 1.0版本時(shí),Spark MLlib才可以支持Python語言。
- 1.2版本開始Spark機(jī)器學(xué)習(xí)庫被分為兩個(gè)包
- 1.2以后的版本,對MLlib中的算法不斷的增加和改進(jìn)
- 從Spark2.0開始,基于RDD的API進(jìn)入維護(hù)模式(即不增加任何新的特性),并預(yù)期于3.0版本的時(shí)候被移除出MLlib。
2.3、機(jī)器學(xué)習(xí)算法包
Spark MLlib & Spark ML
官網(wǎng):http://spark.apache.org/docs/latest/ml-guide.html
總結(jié)
以上是生活随笔為你收集整理的学习笔记Spark(九)—— Spark MLlib应用(1)—— 机器学习简介、Spark MLlib简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记Spark(八)—— Spark
- 下一篇: 学习笔记Spark(十)—— Spark