1. 程式人生 > >Matble怎樣對矩陣進行加標籤整合

Matble怎樣對矩陣進行加標籤整合

這個程式碼主要針對,對不同類資料,加標籤整合

資料為  mnist_all.mat  (因為時間隔得有點久我忘了當初下載網站,有需要可以問我要)

我主要用在GNMF相關處理中,其中對2D Hela image data資料也是類似加標籤,希望對你有幫助

%對MNIST資料的處理
%   整合為一個數據矩陣
%在因為每張圖是28X28=784,所以每一行代表一張圖
%需要從所有圖中選取500樣本
load('mnist_all.mat');	
%  load('usps_all.mat');	

fea=zeros(500,784);
gnd1=ones(50,1);
gnd=gnd1;
for i=2:10
    gnd=[gnd;i*gnd1];    %gnd  為定義的標籤
end

%下面開始構建處理矩陣
%每個樣本選50個樣本(隨機)
t=0;
for i=1:10
    st=['test',num2str(i-1)];  %選取不同的矩陣,字串
    test=eval(st);             %將字串對應的矩陣取值出來
    for j=1:50
        t=t+1;
        fea(t,:)=test(i*j,:);
    end
end

其測試時需要構建標籤    (上面一個程式碼就是Matrix_adt.m)

%  先執行Matrix_adt.m,構建標籤gnd,與重構合成矩陣fea
nClass=10;
K=10;

label = litekmeans(fea,K,'Replicates',20);
 [mFea,nSmp]=size(fea);
labelA=[];
labelA=[(1:mFea)',label];
A=[];
for i=1:K
    for j=1:mFea
        if labelA[j,2]==i;  %找出label所對應的行,
    A(j,:)=fea(j,:);    %提取這一行的所有資訊
        end
    end
end
label = litekmeans(fea,nClass,'Replicates',20);
MIhat = MutualInfo(gnd,label);%越大,越相關,互資訊
disp(['Clustering in the original space. MIhat: ',num2str(MIhat)]);%這是NMI結果
label = bestMap(gnd,label);
AC=K
AC = length(find(gnd == label))/length(gnd);
disp(['Clustering in the original space. MIhat: ',num2str(AC)]);%這是AC結果
對於GNMF的程式碼,我前面部落格中給連結了

相關推薦

Matble怎樣矩陣進行標籤整合

這個程式碼主要針對,對不同類資料,加標籤整合資料為  mnist_all.mat  (因為時間隔得有點久我忘了當初下載網站,有需要可以問我要)我主要用在GNMF相關處理中,其中對2D Hela image data資料也是類似加標籤,希望對你有幫助%對MNIST資料的處理 %

Java8 矩陣進行組合排序

首先,常規的實體類的多條件排序可參考: Java8:Lambda表示式增強版Comparator和排序 java8-Lambda中比較器Comparator的使用 我們有個Matrix 多條件排序要求,矩陣的列動態生成,程式可以知道該列是定性的還是定量的值。使用者在瀏覽這個Matri

druid密碼進行解密

druid加解密資料庫密碼 切換到druid.jar目錄處 java -cp druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools 【password】 獲取privateKey:... pu

Java中使用OpenSSL生成的RSA公私鑰資料進行解密

Java基於OpenSSL的公私鑰對資料進行加解密 使用OpenSSL來生成私鑰和公鑰 RSA加密解密工具類 簽名及校驗類 測試類 使用OpenSSL來生成私鑰和公鑰

shell中date命令month進行減操作的bug

在大部分情況下這個命令執行正確。但是有些情況下這個命令會出現問題,比如當前日期是3月30、3月31、5月31等的時候,上面的命令得到的結果還是當月,而不是我們期望的上月。 這個問題是怎麼產生的呢?比如噹噹前日期是5月31時,-1 month它只是將月份-1,就得到4月31,但是實際上4月只有30天,所以

js時間進行減操作

//時間加減 gu.CountTime=function (t,b) { var time = new Date(t.replace("-","/")); time.setMinutes(time.getMinutes() + b, time.getSeconds(), 0);

js用Date物件的setDate()函式日期進行減操作

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 function addDate(date,days){ var d=new Date(date); d.setDate(d.getDate()+days); var mo

在PostgreSQL中可以直接timestamp進行減運算:

01.SELECT now()::timestamp + '1 year';   02.SELECT now()::timestamp + '1 month';   03.SELECT now()::timestamp + '1 day';   04.SELECT now()

C#中獲取當前時間,及處理時間(時間進行減)

1.獲取當前的時間,並將時間格式化成為字串   DateTime dt=Datetime.Now;   string str=dt.ToString();        //這是最直接的轉化方法   string str2=dt.ToString("yyy-MM-dd HH:mm:ss");2.獲取年、月、日

純python處理矩陣矩陣進行轉置

方法一 :使用常規的思路 def transpose(M): # 初始化轉置後的矩陣 result = [] # 獲取轉置前的行和列 row, col = shape(

使用TeamCity專案進行可持續整合管理(一)

一、可持續整合管理 持續整合,CI:即Continuous integration。 可持續整合的概念是基於團隊(小組)協作開發而提出來的,為了提高團隊開發效率與降低整合風險(早發現,早解決。晚發現,解決更麻煩<1>),各種可持續整合的管理平臺應運而生,這

利用numpy矩陣進行歸一化處理的方法

本文不講歸一化原理,只介紹實現(事實上看了程式碼就會懂原理),程式碼如下: def Normalize(data): m = np.mean(data) mx = max(dat

11.表達式計算一串減乘除帶括號進行計算

pan fin gpo ++ 字符 第一個 std 取數 main 算法流程圖: 執行截圖: 完整代碼: 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <

在centos7上就新添的硬盤進行分區掛載等操作 (實驗自用)

and known 是否 guid ima .com exit 一次 clas ??1.在虛擬機上添加一個新的硬盤 ??2. 為了讓在系統裏能夠顯示新添加的硬盤已知有兩種操作方法? ? ? ? ?1.重啟? ? ? ? 2.輸入 echo "- - -&quo

Office載項Excel進行讀寫操作

ted 是否 nta 文字 個人 asc log account col 轉載自我的個人主頁 前言 在開發ExcelWeb插件的時候,一大亮點就是可以在web項目中操作Excel,讀取Excel的內容,也可以將服務端的數據寫入的 Excel中,大大方便的用戶使用Excel

java時間進行天數的

/** * 對日期進行加減操作 * @param date 要進行加減天數的日期 * @param addOrMinus 對日期加減天數(eg:加一天:1 減一天:-1) * @return * @throws ParseException */ public static

如何svg中某個標籤進行操作

    html程式碼如上,想把最後一條線隱掉,即給最後一個path標籤加上display:none的css屬性,用document.getElementbyTagName()函式不起作用,程式碼如下: $( "#sdtDropCanvas

java 時間資料進行操作

Date time = new Date(); Calendar cal = Calendar.getInstance(); if (time != null) { cal.setTime(time); cal.set(Calendar.HOUR_OF_DAY, 23); cal.se

使用spring-boot整合mybaits資料庫進行操作例項

新建專案,引入依賴 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<

為什麼在神經網路裡面使用梯度下降法模型的權值矩陣進行調整

我們都知道,神經網路是先將模型引數的調整問題轉換為一個求某個損失函式的極小值問題,然後通過梯度下降演算法讓引數選擇合適的值使得該損失函式取得極小值。那麼為什麼梯度下降演算法可以完成這個任務呢? 假設一個