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; }
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; }
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; }