基於Spark的邏輯回歸實驗

2021-08-07 18:47:13 字數 1034 閱讀 8924

首先需要明確,一般來說spark可以支援scala、python、r等多種語言,這裡用的是scala的指令碼。在spark安裝目錄下,執行bin/spark-shell可以啟動scala指令碼,然後可以逐行輸入scala命令。另一種方式是直接編寫如test.scala這樣的指令碼檔案,然後交給spark-shell執行:./spark-shell < test.scala

以上說的是本地模式執行,而如果要遠端執行,首先需要乙個集群,實驗室用的集群模式為

此集群有乙個master和多個worker組成,這個是在安裝之初就設定好的。啟動這個集群的命令為./start-all或者其他,具體文件上也有說明。集群啟動之後,就可以用spark-shell來進行命令列操作,不過需要加上一些引數:./spark-shell --master spark://masterip:port,其中port預設為7077,具體可在spark standalone的文件裡查詢。

如果在執行時需要讀寫檔案,則牽涉到spark的檔案系統——hdfs,這個本質上是乙個hadoop的檔案系統,操縱該系統的命令為hadoop fs -command。如瀏覽本使用者的目錄:hadoop fs -ls /whx。再比如上傳本地檔案:hadoop fs -put localfile 

/user/hadoop/hadoopfile。具體的可以查詢hadoop shell命令

然後就是機器學習樣例了,具體**在官網上有,這裡就不貼了,主要需要指出的是,scala好像沒有類似fopen、fstream這些c++的檔案功能,只能開啟檔案和儲存model,但由於要記錄函式執行時間,因此暫時用的方法是println直接輸出到終端。不過這樣一來就有另乙個問題,那就是由於日誌資訊太多,但是命令列終端一次能顯示的訊息數有限,導致有用的訊息被覆蓋掉了。解決方法是:

匯入下面兩個包

import org.apache.log4j.logger

import org.apache.log4j.level

logger.getlogger("org.apache.spark").setlevel(level.warn)

然後就可以找到自己想要的提示了

基於邏輯回歸模型的評分卡構建

lr模型對進入模型變數的要求 1 變數間不存在較強的線性相關性和多重共線性 2 變數具有顯著性 3 變數具有合理的業務含義,符合業務邏輯 第1點,可以使用單變數分析和多變數分析得到一定的約束,但是未必充分 第2點,從係數的p值進行檢驗 第3點,從係數的符號進行檢驗。變數的顯著性 為了獲取與目標變數有...

邏輯回歸 最基礎的線性邏輯回歸詳解

線性邏輯回歸是最基礎,也是最基本的線性模型,也就是說理解該模型,對於後續其他線性模型的研究有重要意義。所以今天找了時間專門回憶了一下。一 什麼是回歸,什麼是邏輯回歸?用一條直線對資料點進行擬合,擬合過程稱為回歸。logistic回歸 根據現有資料對分類邊界線建立回歸公式,以此進行分類。二 如何建立回...

邏輯回歸的回顧

1 模型函式 2 啟用函式 3 單個訓練資料的損失函式 衡量概率與y到底有多接近 4 m個訓練資料的損失 5 為什麼這裡損失函式是這樣的。因為這裡 是值是概率,所以用線性回歸的損失函式方法不合適 為什麼不合適?因為用那種方法求得的函式不是凸函式,會有多個極值 那麼這裡的損失函式為什麼寫成這樣呢?這裡...