Spark MLlib 入門學習筆記 邏輯回歸

2021-08-01 19:07:51 字數 2400 閱讀 8598

關於邏輯回歸的演算法原理 spark官方文件裡有說明,另外網上也有中文翻譯文件可參考。本筆記是學習mllib的輯回歸api使用時一道練習題記錄,通過這道練習,可以掌握基本使用。mllib提供了兩種演算法實現,分別是sgd梯度下降法和lbfgs。

1. 資料檔案

交通事故的統計檔案,四列,accident(去年是否出過事故,1表示出過事故,0表示沒有),age(年齡 數值型),vision(視力狀況,分型別,1表示好,0表示有問題),drive(駕車教育,分型別,1表示參加過駕車教育,0表示沒有)。第1列是因變數,其它3列是特徵。這是乙個用空格分隔的文字檔案,要使用mllib演算法庫,首先要讀檔案並轉成labeledpoint資料型別的rdd。

1 17 1 1

1 44 0 0

1 48 1 0

1 55 0 0

1 75 1 1

0 35 0 1

0 42 1 1

0 57 0 0

0 28 0 1

0 20 0 1

0 38 1 0

0 45 0 1

0 47 1 1

0 52 0 0

0 55 0 1

1 68 1 0

1 18 1 0

1 68 0 0

1 48 1 1

1 17 0 0

1 70 1 1

1 72 1 0

1 35 0 1

1 19 1 0

1 62 1 0

0 39 1 1

0 40 1 1

0 55 0 0

0 68 0 1

0 25 1 0

0 17 0 0

0 45 0 1

0 44 0 1

0 67 0 0

0 55 0 1

1 61 1 0

1 19 1 0

1 69 0 0

1 23 1 1

1 19 0 0

1 72 1 1

1 74 1 0

1 31 0 1

1 16 1 0

1 61 1 0

2. sgd演算法

package classify

/*accident.txt

accident(去年是否出過事故,1表示出過事故,0表示沒有)

age(年齡 數值型)

vision(視力狀況,分型別,1表示好,0表示有問題)

drive(駕車教育,分型別,1表示參加過駕車教育,0表示沒有)

*/import org.apache.spark.mllib.linalg.

import org.apache.spark.mllib.regression.labeledpoint

import org.apache.spark.mllib.classification.logisticregressionwithsgd

import org.apache.spark.

object logisticsgd

def main(args: array[string])

}

parseline函式將文字檔案的每一行轉成乙個labeledpoint資料型別,randomsplit用例把資料集分成訓練和測試兩部分。val model = logisticregressionwithsgd.train(traindata, 50) 執行訓練並得到模型,這裡的50為迭代次數。val predictionandlabel = testdata.map(p => (model.predict(p.features), p.label))中的model.predict執行**,testdata.map測試資料集的特徵值傳遞給model去**,並將**值與原有的label合併形成乙個新的map。

3. lbfgs演算法

package classify

import org.apache.spark.mllib.classification.logisticregressionwithlbfgs

import org.apache.spark.

import org.apache.spark.mllib.linalg.

import org.apache.spark.mllib.regression.labeledpoint

object logisticlbfgs

def main(args: array[string])

}

val model = new logisticregressionwithlbfgs().setnumclasses(2).run(traindata)中的setnumclasses(2)設定分類數。

對於這個列子,lbfgs的效果比sgd的效果好。

Spark Mllib資料探勘入門四 回歸分析

回歸分析 regression analysis 是一種用來確定兩種或兩種以上變數間相互依賴的定量關係的統計分析方法,運用十分廣泛。如果在回歸分析中,只包括乙個自變數和乙個因變數,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變數,且因變數和...

HTML入門學習day03筆記

乙個簡單地表單 使用者名稱 密碼真實姓名 email 出生日期 性別男 女 愛好籃球 足球 閱讀 位址江蘇山西 湖南甘肅省蘇州 南京鎮江 淮安 市 區 縣介紹 實現效果為 層疊主要體現在 多個樣式表修飾同乙個元素 他可以繼承 具有優先順序 樣式表為 在html中,css的運用主要有三種方式 1.在元...

css入門學習day05筆記

keyframes 動畫名稱 to 或 keyframes 動畫名稱 20 100 animation name 動畫名稱 animation name xiyouji animation duration 動畫持續時間5s animation delay 動畫的延遲1s animation dir...