Esempio n. 1
0
void Dataset::get_train_test_set(std::vector< std::vector<double> >& inputMat,
			       std::vector<int>& inputLabels,
			       unsigned int nrows,
			       std::vector< std::vector<double> >& trnMat,
			       std::vector<int>& trnLabels, 
			       std::vector< std::vector<double> >& tstMat,
			       std::vector<int>& tstLabels,
			       std::vector<unsigned int>* ret_trn_idx,
			       std::vector<unsigned int>* ret_tst_idx)
{
    std::srand ( unsigned ( std::time(0) ) );

    std::vector<unsigned int> ridx;
    for(size_t ii=0; ii < inputMat.size(); ii++)
	ridx.push_back(ii);
    
    std::random_shuffle(ridx.begin(), ridx.end());	
    if(ret_trn_idx != NULL){
	ret_trn_idx->clear();
	ret_trn_idx->insert(ret_trn_idx->begin(), ridx.begin(), ridx.begin()+nrows);
    }
    
    std::vector<unsigned int> tst_idx;
    tst_idx.insert(tst_idx.begin(), ridx.begin()+ nrows, ridx.end());
    if(ret_tst_idx != NULL){
	ret_tst_idx->clear();
	ret_tst_idx->insert(ret_tst_idx->begin(), tst_idx.begin(), tst_idx.end());
    }
    ridx.erase(ridx.begin()+nrows, ridx.end());
  
    get_submatrix(inputMat, inputLabels, ridx, trnMat, trnLabels);
    get_submatrix(inputMat, inputLabels, tst_idx, tstMat, tstLabels);
}
Esempio n. 2
0
void Dataset::get_random_train_test_data(unsigned int nrows,
			       std::vector<unsigned int>& ridx,
			       std::vector< std::vector<double> >& trnMat,
			       std::vector<int>& trnLabels, 
			       std::vector< std::vector<double> >& tstMat,
			       std::vector<int>& tstLabels)
{
    std::srand ( unsigned ( std::time(0) ) );

    if (!(all_features.size()>0)){
	printf("Features not computed \n");
	return;
    }
    ridx.clear();
    for(size_t ii=0; ii < all_features.size(); ii++)
	ridx.push_back(ii);
    
    std::random_shuffle(ridx.begin(), ridx.end());	
    ridx.erase(ridx.begin()+nrows, ridx.end());
    
    set_trn_idx(ridx);
    
    get_submatrix(all_features, all_labels, trn_idx, trnMat, trnLabels);  
    get_submatrix(all_features, all_labels, tst_idx, tstMat, tstLabels);  
    
}
Esempio n. 3
0
int main(int argc, char *argv[]){

    double mmvalues[] = {2.0,3.0,1.0,1.0,4.0,2.0,2.0,1.0,2.0,1.0,4.0,2.0,2.0,3.0,1.0,1.0,4.0,2.0,2.0,1.0,2.0,1.0,4.0,2.0,5.0,4.0,2.0,2.0,1.0,2.0,\
                         4.0,2.0,2.0,1.0,2.0,1.0,6.0,3.0,1.0,1.0,4.0,2.0,2.0,1.0,9.0,1.0,4.0,2.0,5.0,4.0,2.0,2.0,1.0,2.0,5.0,5.0,2.0,2.0,1.0,2.0};

    matrix_t mm, ma, mb, mc, md, mx, my, mz;
    init_matrix(&mm, 'm', 6, 6, mmvalues);
    init_matrix(&ma, 'a', 3, 3, NULL);
    init_matrix(&mb, 'b', 3, 3, NULL);
    init_matrix(&mc, 'c', 3, 3, NULL);

    display_matrix(&mm);
    display_matrix(&ma);
    display_matrix(&mb);
    display_matrix(&mc);

    free_matrix(&ma);
    ma = get_submatrix(&mm, 2, 1, 4, 4);
    display_matrix(&ma);

    free_matrix(&mb);
    mb = get_submatrix(&mm, 3, 2, 4, 4);
    display_matrix(&mb);

    mx = matrix_mul(&ma, &mb, 'X');
    my = square_matrix_mul_recursive(&ma, &mb, 'Y');
    mz = square_matrix_mul_strassen(&ma, &mb, 'Z');

    printf("the result is \n");

    display_matrix(&mx);
    display_matrix(&my);
    display_matrix(&mz);

    ma = get_submatrix(&mm, 1, 2, 6, 1);
    mb = get_submatrix(&mm, 2, 1, 1, 6);

    display_matrix(&ma);
    display_matrix(&mb);

    mc = matrix_mul(&mb, &ma, '1');
    display_matrix(&mc);

    md = matrix_mul(&ma, &mb, 'S');
    display_matrix(&md);

    free_matrix(&mc);
    mc = matrix_scale(&md, 2, '2');
    display_matrix(&mc);

    free_matrix(&ma);
    free_matrix(&mb);
    free_matrix(&mc);
    free_matrix(&md);
    free_matrix(&mx);
    free_matrix(&my);
    free_matrix(&mz);

    return 0;
}//main
Esempio n. 4
0
void Dataset::get_train_test_data(std::vector<unsigned int>& pidx,
			     std::vector< std::vector<double> >& trnMat,
			     std::vector<int>& trnLabels,
			     std::vector< std::vector<double> >& tstMat,
			     std::vector<int>& tstLabels)
{
 
    set_trn_idx(pidx);
    
    get_submatrix(all_features, all_labels, trn_idx, trnMat, trnLabels);//experimental version
    if (trn_labels.size()>0)
	trnLabels.assign(trn_labels.begin(),trn_labels.end());
    get_submatrix(all_features, all_labels, tst_idx, tstMat, tstLabels);  
    
    
}
Esempio n. 5
0
void Dataset::get_test_data(std::vector<unsigned int>& pidx,
			     std::vector< std::vector<double> >& tstMat,
			     std::vector<int>& tstLabels)
{
 
    set_trn_idx(pidx);
    
    get_submatrix(all_features, all_labels, tst_idx, tstMat, tstLabels);  
    
    
}
Esempio n. 6
0
void Dataset::get_random_submatrix(std::vector< std::vector<double> >& inputMat,
			       std::vector<int>& inputLabels,
			       unsigned int nrows,
			       std::vector< std::vector<double> >& outputMat,
			       std::vector<int>& outputLabels)
{
    std::srand ( unsigned ( std::time(0) ) );
  
    std::vector<unsigned int> ridx;
    for(size_t ii=0; ii < inputMat.size(); ii++)
	ridx.push_back(ii);
    
    std::random_shuffle(ridx.begin(), ridx.end());	
    
    ridx.erase(ridx.begin()+nrows, ridx.end());
  
    get_submatrix(inputMat, inputLabels, ridx, outputMat, outputLabels);
}