spark 資料處理中的,正則化標準化和歸一化

2021-09-13 23:58:45 字數 1394 閱讀 4148

a.正則化

1.正則化的目的是什麼?

正則化是為了防止過擬合,加入正則項和的引數估計是符合我們之前的預定目標的,即用盡量少的變數去擬合資料。正則化符合奧卡姆剃刀原理,在所有可能選擇的模型中,能夠很好的解釋已知資料,並且十分簡單的才是最好的模型,也就是要選擇的模型。

2.機器學習中的範數

l0範數是指向量中非零元素的個數,如果用l0規則化乙個引數矩陣w,就是希望w中大部分元素為0,實現稀疏

l1範數是指向量中各個元素的絕對值之和

l2範數是指向量各元素的平方和然後開方

3.l1 l2 regularization描述

4.結論:

為了防止過擬合,不僅僅要求損失函式小,還要求 min(損失函式+正則化項 )

b.標準化

在spark.ml中標準化的實現列是standardscaler

standardscaler處理的物件是每一列,也就是每一維特徵,將特徵標準化為單位標準差或是0均值,或是0均值單位標準差。

主要有兩個引數可以設定:

withstd: 預設為真。將資料標準化到單位標準差。

withmean: 預設為假。是否變換為0均值。

standardscaler需要fit資料,獲取每一維的均值和標準差,來縮放每一維特徵。

eg:

//資料標準化

val scaler = new standardscaler()

.setinputcol("features")

.setoutputcol("scaledfeatures")

.setwithstd(true)

.setwithmean(false)

val scalermodel = scaler.fit(output)

val scaleddata = scalermodel.transform(output)

c.歸一化資料歸一化由minmaxscaler實現

minmaxscaler作用同樣是每一列,即每一維特徵。將每一維特徵線性地對映到指定的區間,通常是[0, 1]。

eg:

//資料歸一化

val scaler = new minmaxscaler()

.setinputcol("featuresassembler")

.setoutputcol(features)

Spark之json資料處理

預設情況下,sparkcontext物件在spark shell啟動時用namesc初始化。使用以下命令建立sqlcontext。val sqlcontext new org.apache.spark.sql.sqlcontext sc employee.json 將此檔案放在currentscal...

基於spark的流式資料處理 DStream概述

spark streaming工作機制 spark streaming程式的基本步驟 建立streamingcontext物件 spark streaming工作機制 在spark streaming中,會有乙個元件receiver,作為乙個長期執行的task跑在乙個executor上 每個rece...

FMDB中的資料處理

1 self.db executeupdate create table test a text,b text,c integer,d double,e double 我們建立乙個 text,可以很清楚的看到其欄位對應的資料型別 資料型別 text 字串型別。integer 整型。real 浮點型 ...