在MATLAB中使用交叉驗證函式的方法

2021-08-15 03:13:28 字數 1130 閱讀 7807

這週忙著趕畢業**,發個前段時間用到的在matlab中使用交叉驗證函式的方法吧。 

交叉驗證是一種隨機迴圈驗證方法,它可以將資料樣本隨機分割成幾個子集。交叉驗證主要用於評估統計分析或機器學習演算法的泛化能力等。 

在評估機器學習演算法的泛化能力時,我們可以選擇隨機分割後的一部分資料作為訓練樣本,另一部分作為測試樣本。具體實現流程如下:

data = rand(9,3);%建立維度為9×3的隨機矩陣樣本

indices = crossvalind('kfold', 9, 3);%將資料樣本隨機分割為3部分

fori = 1:3

%迴圈3次,分別取出第i部分作為測試樣本,其餘兩部分作為訓練樣本

test = (indices == i);

train = ~test;

traindata = data(train, :);

testdata = data(test, :);

end

相應輸出結果: 

生成的隨機矩陣data: 

indices資料,即分成的三類,數字相同表示對應的行數為同一類: 

當i=3時的test資料: 

對應的train資料(即對test取反): 

testdata(即test資料中『1』所對應的行的資料) 

結束,歡迎交流學習!

Matlab使用交叉驗證

在做機器學習時,經常要用到交叉驗證來分配資料,故在此記錄一下。所謂交叉驗證,就是將乙個資料集分為k份,然後取其中乙份作為測試集,剩餘k 1份作為訓練集。然後,取另乙份作為測試集,其餘k 1份作為訓練集.如此迴圈,直到每乙份都做過測試集為止。用的比較多的是10折交叉驗證,如下 clc clear al...

在keras中使用交叉驗證或者網格搜尋踩的坑

1.create model。即建立自己的模型,在keras中自己根據需要搭模型,例如 def create model self 2.定義進行調參或者交叉驗證的方法,以供其他方法進行呼叫 def adj para self,x train,y train estimator kerasclassi...

在Matlab中使用Levmar

本文介紹如何在windows平台下,在matlab中適用levmar。首先,網上教程很多,有的需要適用cmake,那樣略顯麻煩。levmar本身提供了對visual studio的支援,並且大部分在windows的開發者都是適用visual studio的,因此本文不使用cmake,而直接利用vis...