分類和回歸 一 線性模型

2021-08-09 13:21:44 字數 2060 閱讀 6690

分類和回歸

spark.mlib提供了多種方法用於用於二分類、多分類以及回歸分析。 下表介紹了每種問題型別支援的演算法。

問題型別

支援方法

二分類線性svms、邏輯回歸、決策樹、隨機森林、梯度增強樹、樸素貝葉斯

多分類邏輯回歸、決策樹、隨機森林、樸素貝葉斯

回歸線性最小二乘法、決策樹、隨機森林、梯度增強樹、保序回歸

線性模型

1、數學描述

許多標準的機器學習演算法可以歸結為凸優化問題。例如,找到凸函式 f(w) 的乙個極小值的任務,這個凸函式依賴於可變向量w (在spark原始碼中,一般表示為weights)。形式上,我們可以將其當作乙個凸優化問題$_f(w)$。它的目標函式可以表示為如下公式

(1):

在上式中,向量x表示訓練資料集,y表示它相應的標籤,也是我們想**的值。如果l(w;x,y)可以表示為$^x$和y的函式, 我們稱這個方法為線性的。spark.mllib中的幾種分類演算法和回歸演算法可以歸為這一類。

目標函式f包含兩部分:正則化(regularizer),用於控制模型的複雜度;損失函式,用於度量模型的誤差。損失函式l(w;.)是乙個典型的基於w的凸函式。固定的正則化引數gamma定義了兩種目標的權衡(trade-off), 這兩個目標分別是最小化損失(訓練誤差)以及最小化模型複雜度(為了避免過擬合)。

1.1、損失函式

下面介紹spark.mllib中提供的幾種損失函式以及它們的梯度或子梯度(sub-gradient)

hinge損失的損失函式l(w;x,y)以及梯度分別是:

logistic損失的損失函式l(w;x,y)以及梯度分別是:

squared損失的損失函式l(w;x,y)以及梯度分別是:

1.2  正則化

正則化的目的是為了簡化模型及防止過擬合。spark.mllib中提供了下面的正則化方法。 問題

規則化函式r(w)

梯度zero00

l2如下公式(1)wl1

如下公式(2)

sign(w)

elastic net

alpha * l1 +(1-alpha) * l2

alpha * sign(w) + (1-alpha) * w

在上面的**中,sign(w)是乙個向量,它由w中的所有實體的訊號量(+1,-1)組成。l2問題往往比l1問題更容易解決,那是因為l2是平滑的。然而,l1可以使權重矩陣更稀疏, 從而構建更小以及更可判斷的模型,模型的可判斷性在特徵選擇中很有用。

2、分類

分類的目的就是將資料切分為不同的類別。最一般的分類型別是二分類,即有兩個類別,通常稱為正和負。如果類別數超過兩個,我們稱之為多分類。spark.ml提供了兩種線性方法用於分類:線性支援向量機以及邏輯回歸。 線性支援向量機僅僅支援二分類,邏輯回歸既支援二分類也支援多分類。對所有的方法,spark.ml支援l1和l2正則化。分類演算法的詳細介紹見下面的鏈結。

TensorFlow 例項一 線性回歸模型

encoding utf 8 create by ibf on 2018 5 6 import numpy as np import tensorflow as tf 1.構造乙個資料 np.random.seed 28 n 100 x np.linspace 0,6,n np.random.nor...

(一)線性模型

基本形式 給定由d個屬性描述的特徵 x 其中x 是在第i個屬性位置上的取值,這樣就形成了乙個線性函式,定義如下 令 x 1 1寫成向量形式如下 我們的目標就是去求這些引數,如何確定引數,關鍵在於如何去衡量 h x 和y之間的差別。均方誤差是回歸任務中最常用的效能度量,因此我們可以試圖讓均方誤差最小化...

機器學習系列之一 線性回歸模型

目錄1.線性回歸 1.1 問題轉換 1.2 衡量標準 1.3 學習方向 1.線性回歸 1.1 問題轉換 今天我們來談一下線性回歸。問題 假如我想知道乙個房屋的房價是多少,現在我們能提供的資料報含房屋的面積,房屋的朝向,房屋的地理位置等有關房子的資訊,我們該怎麼做呢?聰明的你一定已經知道了。為了方便,...