示例#1
0
bool KMeans::saveModelToFile( std::fstream &file ) const{

    if( !file.is_open() ){
        errorLog << "saveModelToFile(fstream &file) - Failed to save model, file is not open!" << std::endl;
        return false;
    }

    file << "GRT_KMEANS_MODEL_FILE_V1.0\n";
    
    if( !saveClustererSettingsToFile( file ) ){
        errorLog << "saveModelToFile(fstream &file) - Failed to save clusterer settings to file!" << std::endl;
        return false;
    }
    
    if( trained ){
        file << "Clusters:\n";

        for(UINT k=0; k<numClusters; k++){
            for(UINT n=0; n<numInputDimensions; n++){
                file << clusters[k][n] << "\t";
           }file << std::endl;
        }
    }

   return true;

}
示例#2
0
bool SelfOrganizingMap::save( std::fstream &file ) const{
    
    if( !trained ){
        errorLog << "save(fstream &file) - Can't save model to file, the model has not been trained!" << std::endl;
        return false;
    }
    
    file << "GRT_SELF_ORGANIZING_MAP_MODEL_FILE_V1.0\n";
    
    if( !saveClustererSettingsToFile( file ) ){
        errorLog << "save(fstream &file) - Failed to save cluster settings to file!" << std::endl;
        return false;
    }
    
    file << "NetworkTypology: " << networkTypology << std::endl;
    file << "AlphaStart: " << alphaStart << std::endl;
    file << "AlphaEnd: " << alphaEnd << std::endl;
    
    if( trained ){        
        file << "Neurons: \n";
        for(UINT i=0; i<neurons.getNumRows(); i++){
            for(UINT j=0; j<neurons.getNumCols(); j++){
                if( !neurons[i][j].save( file ) ){
                    errorLog << "save(fstream &file) - Failed to save neuron to file!" << std::endl;
                    return false;
                }
            }
        }
    }
    
    return true;
    
}
bool HierarchicalClustering::saveModelToFile( std::fstream &file ) const{
    
    if( !file.is_open() ){
        errorLog << "saveModelToFile(string filename) - Failed to open file!" << std::endl;
        return false;
    }
    
    file << "GRT_HIERARCHICAL_CLUSTERING_FILE_V1.0\n";
    
    if( !saveClustererSettingsToFile( file ) ){
        errorLog << "saveModelToFile(fstream &file) - Failed to save cluster settings to file!" << std::endl;
        return false;
    }
    
    if( trained ){
        file << "M: " << M << std::endl;
        file << "N: " << N << std::endl;
        file << "NumLevels: " << clusters.getSize() << std::endl;
        
        for(UINT i=0; i<clusters.getSize(); i++){
            file << "Level: " << clusters[i].getLevel() << std::endl;
            file << "NumClusters: " << clusters[i].getNumClusters() << std::endl;
        }
    }
    
    return true;
    
}
示例#4
0
bool GaussianMixtureModels::saveModelToFile( std::fstream &file ) const{
    
    if( !file.is_open() ){
        errorLog << "saveModelToFile(string filename) - Failed to open file!" << std::endl;
        return false;
    }
    
    file << "GRT_GAUSSIAN_MIXTURE_MODELS_FILE_V1.0\n";
    
    if( !saveClustererSettingsToFile( file ) ){
        errorLog << "saveModelToFile(fstream &file) - Failed to save cluster settings to file!" << std::endl;
        return false;
    }
    
    if( trained ){
        file << "Mu:\n";
        for(UINT k=0; k<numClusters; k++){
            for(UINT n=0; n<numInputDimensions; n++){
                file << mu[k][n] << "\t";
            }
            file << std::endl;
        }
        
        file << "Sigma:\n";
        for(UINT k=0; k<numClusters; k++){
            for(UINT i=0; i<numInputDimensions; i++){
                for(UINT j=0; j<numInputDimensions; j++){
                    file << sigma[k][i][j] << "\t";
                }
            }
            file << std::endl;
        }
        
        file << "InvSigma:\n";
        for(UINT k=0; k<numClusters; k++){
            for(UINT i=0; i<numInputDimensions; i++){
                for(UINT j=0; j<numInputDimensions; j++){
                    file << invSigma[k][i][j] << "\t";
                }
            }
            file << std::endl;
        }
        
        file << "Det:\n";
        for(UINT k=0; k<numClusters; k++){
            file << det[k] << std::endl;
        }
    }
    
    return true;
    
}