資料樣本的選擇方法

2021-07-31 04:54:11 字數 2531 閱讀 2139

訓練樣本的選擇方式

在目前我的實驗中訓練樣本主要有兩種選擇方式:(當讓還有很多選擇方式,比如我在人臉影象親緣識別的實驗中是將所有的資料當作訓練樣本,在將所有的資料作為測試樣本來測試方法的識別率、還有比如交叉驗證等很多方法,在這裡記錄的是目前的實驗所用到的訓練樣本的選擇方法)

1、在同類樣本中隨機的選取1/2或者2/3的樣本作為訓練樣本剩下的作為測試樣本,matlab**;

[mtrain,ntrain] = size(y);

[n m]=size(unique(gnd));

%      %% 適合於每類樣本數相同的情況

%      k=ntrain/n;

%      res=ceil(k/2);

%      for i=1:n

%          random=randperm(k);

%          %向上去2/3的樣本作為訓練樣本

%          wtrain(:,(i-1)*res+1:i*res)=y(:,random(1:res)+(i-1)*k);

%          wtest(:,(i-1)*(k-res)+1:i*(k-res))=y(:,random((res+1):k)+(i-1)*k);

% %      end

%      

%      %標籤重構

%      for i=1:n 

%          trainlab((i-1)*res+1:i*res,:)=i; %訓練樣本標籤

%          testlab((i-1)*(k-res)+1:i*(k-res),:)=i;%測試樣本標籤

%      end

作個解釋吧!若是實驗想要實驗效果很好,這個樣本的選擇是不錯的,我在目前的實驗室中識別效果達到100%,所有不得不選擇第二種樣本選擇方式如下:

2、這個就是從所有樣本隨機的選取一定數量的樣本作為訓練樣本,剩下作為測試樣本,matlab**如下:

%%  從所有樣本中隨機的選取一定數量的樣本作為訓練樣本 剩下的作為測試樣本

random=randperm(ntrain);

k=ceil(ntrain/2);

wtrain(:,1:k)=y(:,random(1:k));

wtest(:,1:ntrain-k)=y(:,random(k+1:ntrain));

實驗的效果肯定趕不上第乙個識別率,因為隨機選取的有些類可能乙個都沒有選取到,獲取一類樣本的所有都當作訓練樣本了這裡在新增一類,樣本中每一類的樣本數量不相等的情況下,在(1)中我是假設每一類的樣本數量是相等的

3、每一類樣本數量不相等的情況下的matlab**:

[xlen1 ylen1]=size(gnd);

for i=1:xlen1

row_index = gnd(:,1) == i;

b = gnd(row_index,:);

[xlen2 ylen2]=size(b);

random=randperm(xlen2);

trlength=1;

telength=1;

k=ceil(xlen2/2);

wtrain(:,trlength:trlength+k-1)=fea(:,random(1:k)+trlength-1);

wtest(:,telength:telength+(xlen2-k)-1)=fea(:,random(k+1:xlen2)+trlength-1);         

trainlab(trlength:trlength+k,:)=i; %訓練樣本標籤

testlab(telength:telength+(xlen2-k),:)=i;%測試樣本標籤        

trlength=trlength+xlen2;

telength=trlength+xlen2-k;

end

當然還有什麼交叉驗證等很多的設定情況,以後有涉及到再新增.....

二、如何在矩陣中新增元素(i表示行,j表示列)在i=j時新增乙個元素0,其餘的元素後移。在不該動現有的元素下改動**:

在試驗中遇到的情況是:這個解釋不了,遇到這個情況的肯定可以輕鬆的理解這個花了我一上午的時間來完成,具體**如下:

[xlen ylen]=size(x_yp);

weig(:,1)=[0;x_yp(:,1)];

weig(:,ylen)=[x_yp(:,ylen);0];

for i=2:ylen-1

weig(:,i)=[x_yp(1:i-1,i);0;x_yp(i:xlen,i)];   

end三、取出值為某乙個數的所有列、行

取出矩陣中某一列或者某一行的元素值為某個值的所有行或列,matlab**:

row_index = gnd(:,1) == i;

b = gnd(row_index,:);

[xlen2 ylen2]=size(b);

四、隨機的取出矩陣的行或列

**如下:

random=randperm(ntrain);

wtrain(:,1:k)=y(:,random(1:k));

機器學習樣本資料集,訓練正負樣本

1 caltech 101 資料庫 該資料庫在2003年被發布,包括101類目標影象和1類背景影象,共102類,彩色影象較多,有部分灰度影象。總共影象數為9145 除去背景後總數為8677 每類影象數大約在31 800之間,影象大小為300 200。此資料庫的特點是 每個影象只含有乙個目標,且目標大...

樣本不平衡的處理方法

樣本不平衡其實的主要思想就是過取樣和欠取樣,但是由於在複製少量標籤的樣本或者篩選大量標籤的樣本方法不同衍生出了不同的處理手段 1.隨機過取樣 複製標籤少的樣本使得好壞比滿足建模需要 2.隨機欠取樣 抽取標籤多的樣本使得好壞比滿足建模需要 會丟失樣本資訊 3.easyensemble 標籤多的樣本進行...

騰訊問卷回答小組,調研樣本庫的新選擇

在調研工作中,經常會遇到這種情況,大家辛辛苦苦把問卷設計好,投放出去等著接收資料著手處理,結果發現 量慘淡 資料代表性不足,那真是太心酸程式設計客棧了吧 為什麼調查問卷會無人問津呢?又要怎麼改善?線上問卷雖然傳播方便,但是如果沒有成功投放給更多的人看到,也很難被填寫,一般的線上問卷投放渠道有幾種 1...