欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
【視頻】支持向量機SVM、支持向量回歸SVR和R語(yǔ)言網(wǎng)格搜索超參數優(yōu)化實(shí)例

原文鏈接:http://tecdat.cn/?p=23305

什么是支持向量機 (SVM)?

我們將從簡(jiǎn)單的理解 SVM 開(kāi)始。

【視頻】支持向量機SVM、支持向量回歸SVR和R語(yǔ)言網(wǎng)格搜索超參數優(yōu)化實(shí)例

假設我們有兩個(gè)標簽類(lèi)的圖,如下圖所示:

你能決定分隔線(xiàn)是什么嗎?你可能想出了這個(gè):

這條線(xiàn)將類(lèi)完全分開(kāi)。這就是 SVM 本質(zhì)上所做的——簡(jiǎn)單的類(lèi)分離。

現在,數據是這樣的:

在這里,我們沒(méi)有一條簡(jiǎn)單的線(xiàn)來(lái)分隔這兩個(gè)類(lèi)。所以我們將擴展我們的維度并沿 z 軸引入一個(gè)新維度。

我們現在可以將這兩個(gè)類(lèi)分開(kāi):

這正是 SVM 所做的!它試圖找到分隔這兩個(gè)類(lèi)的線(xiàn)/超平面(在多維空間中)。然后根據要預測的類(lèi)別,根據它是位于超平面的正面還是負面,對新點(diǎn)進(jìn)行分類(lèi)。

支持向量機 (SVM) 算法的超參數

在繼續之前,您應該了解 SVM 的一些重要參數:

  • 核:核幫助我們在更高維空間中找到超平面,而不會(huì )增加計算成本。通常,如果數據的維度增加,計算成本會(huì )增加。當我們無(wú)法在給定維度中找到分離超平面并且需要在更高維度中移動(dòng)時(shí),需要增加維度:

  • 超平面:這基本上是 SVM 中兩個(gè)數據類(lèi)之間的分隔線(xiàn)。但在支持向量回歸中,這條線(xiàn)將用于預測連續輸出

  • 決策邊界:決策邊界可以被認為是一條分界線(xiàn)(為簡(jiǎn)化起見(jiàn)),其一側是正例,另一側是負例。在這條線(xiàn)上,這些例子可以分為正面或負面。SVM 的相同概念也將應用于支持向量回歸

支持向量回歸 (SVR) 簡(jiǎn)介

支持向量回歸 (SVR) 使用與 SVM 相同的原理,但用于回歸問(wèn)題。讓我們花幾分鐘時(shí)間了解 SVR 背后的想法。

支持向量回歸背后的想法

回歸的問(wèn)題是在訓練樣本的基礎上找到一個(gè)近似映射從輸入域到實(shí)數的函數。因此,現在讓我們深入了解 SVR 的實(shí)際工作原理。

將這兩條綠線(xiàn)視為決策邊界,將藍線(xiàn)視為超平面。當我們繼續使用 SVR 時(shí),我們的目標是基本上考慮決策邊界線(xiàn)內的點(diǎn)。我們的最佳擬合線(xiàn)是具有最大點(diǎn)數的超平面。

我們首先要了解的是什么是決策邊界。將這些線(xiàn)視為距超平面的任何距離,例如“a”。因此,這些是我們在距超平面“+a”和“-a”距離處繪制的線(xiàn)。文中的這個(gè)'a'基本上被稱(chēng)為epsilon。

假設超平面的方程如下:

Y = wx+b(超平面方程)

則決策邊界方程變?yōu)椋?/p>

wx+b=+a

wx+b= -a

因此,任何滿(mǎn)足我們的 SVR 的超平面都應該滿(mǎn)足:

-a < Y- wx+b < +a 

我們的主要目標是在距原始超平面“a”距離處確定決策邊界,以便最接近超平面的數據點(diǎn)或支持向量位于該邊界線(xiàn)內。

因此,我們將只選取那些在決策邊界內且錯誤率最低的點(diǎn),或者在公差范圍內的點(diǎn)。這給了我們一個(gè)更好的擬合模型。

接下來(lái),我們將展示如何使用R語(yǔ)言來(lái)進(jìn)行支持向量回歸SVR。

R語(yǔ)言進(jìn)行支持向量機回歸SVR和網(wǎng)格搜索超參數優(yōu)化

我們將首先做一個(gè)簡(jiǎn)單的線(xiàn)性回歸,然后轉向支持向量回歸,這樣你就可以看到兩者在相同數據下的表現。

一個(gè)簡(jiǎn)單的數據集

首先,我們將使用這個(gè)簡(jiǎn)單的數據集。

正如你所看到的,在我們的兩個(gè)變量X和Y之間似乎存在某種關(guān)系,看起來(lái)我們可以擬合出一條在每個(gè)點(diǎn)附近通過(guò)的直線(xiàn)。

我們用R語(yǔ)言來(lái)做吧!


點(diǎn)擊標題查閱往期內容

Matlab建立SVM,KNN和樸素貝葉斯模型分類(lèi)繪制ROC曲線(xiàn)

左右滑動(dòng)查看更多

01

02

03

04

第1步:在R中進(jìn)行簡(jiǎn)單的線(xiàn)性回歸

下面是CSV格式的相同數據,我把它保存在regression.csv文件中。

我們現在可以用R來(lái)顯示數據并擬合直線(xiàn)。

# 從csv文件中加載數據

dataDirectory <- "D:/" #把你自己的文件夾放在這里

data <- read.csv(paste(dataDirectory, 'data.csv'sep=""), header = TRUE)



# 繪制數據

plot(data, pch=16)



# 創(chuàng )建一個(gè)線(xiàn)性回歸模型

model <- lm(Y ~ X, data)



# 添加擬合線(xiàn)

abline(model)

上面的代碼顯示以下圖表:

第2步:我們的回歸效果怎么樣?

為了能夠比較線(xiàn)性回歸和支持向量回歸,我們首先需要一種方法來(lái)衡量它的效果。

為了做到這一點(diǎn),我們改變一下代碼,使模型做出每一個(gè)預測可視化

# 對每個(gè)X做一個(gè)預測

pred <- predict(model, data)



# 顯示預測結果

points(X, pred)

產(chǎn)生了以下圖表。

對于每個(gè)數據點(diǎn)Xi,模型都會(huì )做出預測Y^i,在圖上顯示為一個(gè)紅色的十字。與之前的圖表唯一不同的是,這些點(diǎn)沒(méi)有相互連接。

為了衡量我們的模型效果,我們計算它的誤差有多大。

我們可以將每個(gè)Yi值與相關(guān)的預測值Y^i進(jìn)行比較,看看它們之間有多大的差異。

請注意,表達式Y^i-Yi是誤差,如果我們做出一個(gè)完美的預測,Y^i將等于Yi,誤差為零。

如果我們對每個(gè)數據點(diǎn)都這樣做,并將誤差相加,我們將得到誤差之和,如果我們取平均值,我們將得到平均平方誤差(MSE)。

在機器學(xué)習中,衡量誤差的一個(gè)常見(jiàn)方法是使用均方根誤差(RMSE),所以我們將使用它來(lái)代替。

為了計算RMSE,我們取其平方根,我們得到RMSE

使用R,我們可以得到以下代碼來(lái)計算RMSE

rmse <- function(error)

{

  sqrt(mean(error^2))

}

我們現在知道,我們的線(xiàn)性回歸模型的RMSE是5.70。讓我們嘗試用SVR來(lái)改善它吧!

第3步:支持向量回歸

用R創(chuàng )建一個(gè)SVR模型。

下面是用支持向量回歸進(jìn)行預測的代碼。

model <- svm(Y ~ X , data)

如你所見(jiàn),它看起來(lái)很像線(xiàn)性回歸的代碼。請注意,我們調用了svm函數(而不是svr?。?,這是因為這個(gè)函數也可以用來(lái)用支持向量機進(jìn)行分類(lèi)。如果該函數檢測到數據是分類(lèi)的(如果變量是R中的一個(gè)因子),它將自動(dòng)選擇SVM。

代碼畫(huà)出了下面的圖。

這一次的預測結果更接近于真實(shí)的數值 ! 讓我們計算一下支持向量回歸模型的RMSE。

# 這次svrModel$residuals與data$Y - predictedY不一樣。

#
所以我們這樣計算誤差


svrPredictionRMSE

正如預期的那樣,RMSE更好了,現在是3.15,而之前是5.70。

但我們能做得更好嗎?

第四步:調整你的支持向量回歸模型

為了提高支持向量回歸的性能,我們將需要為模型選擇最佳參數。

在我們之前的例子中,我們進(jìn)行了ε-回歸,我們沒(méi)有為ε(?)設置任何值,但它的默認值是0.1。 還有一個(gè)成本參數,我們可以改變它以避免過(guò)度擬合。

選擇這些參數的過(guò)程被稱(chēng)為超參數優(yōu)化,或模型選擇。

標準的方法是進(jìn)行網(wǎng)格搜索。這意味著(zhù)我們將為?和成本的不同組合訓練大量的模型,并選擇最好的一個(gè)。

# 進(jìn)行網(wǎng)格搜索

tuneResultranges = list(epsilon = seq(0,1,0.1), cost = 2^(2:9))


# 繪制調參圖

plot(Result)

在上面的代碼中有兩個(gè)重要的點(diǎn)。

  • 我們使用tune方法訓練模型,?=0,0.1,0.2,...,1和cost=22,23,24,...,29這意味著(zhù)它將訓練88個(gè)模型(這可能需要很長(cháng)一段時(shí)間

  • tuneResult返回MSE,別忘了在與我們之前的模型進(jìn)行比較之前將其轉換為RMSE。

最后一行繪制了網(wǎng)格搜索的結果。

在這張圖上,我們可以看到,區域顏色越深,我們的模型就越好(因為RMSE在深色區域更接近于零)。

這意味著(zhù)我們可以在更窄的范圍內嘗試另一個(gè)網(wǎng)格搜索,我們將嘗試在0和0.2之間的?值。目前看來(lái),成本值并沒(méi)有產(chǎn)生影響,所以我們將保持原樣,看看是否有變化。

rangelist(epsilo = seq(0,0.2,0.01), cost = 2^(2:9))

我們用這一小段代碼訓練了不同的168模型。

當我們放大暗區域時(shí),我們可以看到有幾個(gè)較暗的斑塊。

從圖中可以看出,C在200到300之間,?在0.08到0.09之間的模型誤差較小。

希望對我們來(lái)說(shuō),我們不必用眼睛去選擇最好的模型,R讓我們非常容易地得到它,并用來(lái)進(jìn)行預測。

# 這個(gè)值在你的電腦上可能是不同的

# 因為調參方法會(huì )隨機調整數據

tunedModelRMSE <- rmse(error)

我們再次提高了支持向量回歸模型的RMSE !

我們可以把我們的兩個(gè)模型都可視化。在下圖中,第一個(gè)SVR模型是紅色的,而調整后的SVR模型是藍色的。

我希望你喜歡這個(gè)關(guān)于用R支持向量回歸的介紹。你可以查看原文得到本教程的源代碼。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ML之SVM:SVM算法的簡(jiǎn)介、應用、經(jīng)典案例之詳細攻略
解讀:利用傅里葉變換和支持向量回歸進(jìn)行股價(jià)預測
詳解支持向量機
Libsvm使用詳細說(shuō)明
libSVM簡(jiǎn)介及核函數模型選擇
基于機器學(xué)習的多模態(tài)神經(jīng)影像學(xué)與自主神經(jīng)活動(dòng)參數或可預測疼痛
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久