淺談KMlib(機器學習)
PipeLine
Pipeline:管道,
在spark mllib中,作用主要是來定義計算的流程。模型的儲存等。
相當於提供了一個工具類,可以讓我們更方便的使用spark mllib
推薦:在使用sparkmllib過程中,建議通過pipeline將資料處理流程,連線起來,同時將模型的結果通過pipeline儲存和載入。
完整的機器學習流程:
1資料的獲取//載入資料 5%
2.資料的預處理//(字串轉數字,缺失值的處理,異常值的處理,hash) 70%
3.模型的訓練 10%
4.在測試資料上進行模型的評估(錯誤率,正確率,MSE 最小平方誤差)10%
5.如果模型達標,進行模型的儲存,如果不達標,可以更換模型,或者對資料再次預處理。
機器學習模型總結:
1.分類:事先已經知道類別,只是對資料劃分到已知的類別中,監督演算法。
Ie:垃圾郵件 垃圾簡訊 信用評級 。。。
- 邏輯斯蒂迴歸
- 決策樹
- 貝葉斯
- 隨機森林
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、只要是做與不做的情況