1. 程式人生 > >淺談KMlib(機器學習)

淺談KMlib(機器學習)

PipeLine

         Pipeline:管道,

         在spark mllib中,作用主要是來定義計算的流程。模型的儲存等。

         相當於提供了一個工具類,可以讓我們更方便的使用spark mllib

         推薦:在使用sparkmllib過程中,建議通過pipeline將資料處理流程,連線起來,同時將模型的結果通過pipeline儲存和載入。

完整的機器學習流程:

1資料的獲取//載入資料  5%

2.資料的預處理//(字串轉數字,缺失值的處理,異常值的處理,hash)  70%

3.模型的訓練 10%

4.在測試資料上進行模型的評估(錯誤率,正確率,MSE 最小平方誤差)10%

5.如果模型達標,進行模型的儲存,如果不達標,可以更換模型,或者對資料再次預處理。

機器學習模型總結:

1.分類:事先已經知道類別,只是對資料劃分到已知的類別中,監督演算法。

Ie:垃圾郵件 垃圾簡訊 信用評級 。。。

  1. 邏輯斯蒂迴歸
  2. 決策樹
  3. 貝葉斯
  4. 隨機森林

2.聚類:事先不知道類別,只是將資料集劃分成指定的個數。非監督演算法

         Ie:人群劃分,收入劃分,成績劃分。。

         演算法名稱:Kmeans

3.迴歸:預測一個連續型的值。

         Ie:預測收入,預測價格,預測溫度。。。。

         演算法名稱:線性迴歸演算法

4.關聯分析/關聯規則 以及 協同過濾

         關聯分析:分析兩兩元素,或者多個元素相互之間的關係,求其一同出現的次數。次數越高,則說明關係越密切。

         可以分析兩兩商品或多個商品同時出現的次數,基於此推薦。

演算法名稱:FP-growth.

         協同過濾:分析使用者與使用者(物品與物品)之間的相似度。根據相似使用者,進行商品推薦。

         演算法名稱:ALS

(ML)機器學習:數學模型、建模

流程:提出模型-à序列-à預算

(DL)深度學習ß--à(AI)人工智慧

能看:識別影象、人臉識別、識別萬物

能說:語音功能

能聽:語音識別、翻譯

汽車自動駕駛

神經網路:分為三層

深度神經網路模型:吳恩達

 

1.線性迴歸:在空間裡有n個點,在空間中畫出一條直線到n個點距離之和最小。

線性:y=ax+b   (一元一次函式)   a:相關係數    b:截距(到x軸的距離)

Y=a0+a1x1+a2x2+….+anxn

迴歸:逼近,n點線的距離最近

作用:可以做預測(明天天氣)

屬於:監督性學習

特徵(x):x1—天氣  x2----時間   x3----地點    x4------風速

求某個方向上的變化率

《最終變成n元線性方程組》

訓練:7/8 訓練資料,建立模型

測試:3/2 檢驗模型 是否成效

配置項:

SetFeaturecol(“features”)  特徵 因變數(x)

setLabelcol(“label”)  自變數 (y)

利用訓練資料對模型擬合成型。Lir.fit()

Eg:由年齡、身高--à體重

模型:y=a+a1x1+a2x2     x1~2:表示身高、體重   y表示體重

資料:21 175 120 輸出的是一個double型別的值

spark載入資料:spark.sparkcontext.textFile(“PathName”)

 物件返回兩個引數:record(arr(0),arr(1))

抽樣:randomsplit(Array(0.8,0.2)) 對資料進行抽樣訓練

 

2.聚類(KmeanSexample):先選取聚類中心(或者自動隨機產生),將與這個聚類中心的距離(兩點之間的距離-歐式距離)最小的點先歸為一類,再區這一類的聚類中心(這些點的中心點作為新的聚類中心),迭代,直到與下次的情況一樣。就講這歸類的作為穩定類。

屬於:無監督學習

從開始不知道類別,最後歸類

作用於:人力資源(分等級)、人物畫像

Setk(2)   2類  自動可以設定隨機數種子

 

3.分類:監督學習  開始類別已知

 

4.邏輯斯蒂(Logistic Regression):輸入數字,輸出類別(0/1)

與線性迴歸的區別:線性迴歸輸出的是double型別(正無窮到負無窮),LR輸出的是0/1(0~1)

將線性迴歸的接軌對映成0~1之間

再將值小於0.5-à0   大於等於0.5-----à1

人臉識別、to be or ont to be、只要是做與不做的情況