Haplo Prediction
predict haplogroups
Data Structures | Typedefs | Functions
nb_gmm.h File Reference

Naive Bayes Gaussian mixture model classifier. More...

#include <config.h>
#include <stdlib.h>
#include <inttypes.h>
#include <jwsc/base/error.h>
#include <jwsc/vector/vector.h>
#include <jwsc/matrix/matrix.h>
#include <jwsc/matblock/matblock.h>

Go to the source code of this file.

Data Structures

struct  NB_gmm_model
 Naive Bayes Gaussian mixture model. More...
struct  NB_gmm_model_node
 Naive Bayes Gaussian mixture model tree node. More...

Typedefs

typedef struct NB_gmm_model_node NB_gmm_model_node
 Naive Bayes Gaussian mixture model tree node.
typedef NB_gmm_model_node NB_gmm_model_tree
 Naive Bayes Gaussian mixture model tree.

Functions

void train_nb_gmm_model (NB_gmm_model **model_out, const Vector_u32 *labels, const Matrix_i32 *markers, const Vector_d *priors, uint32_t num_components)
 Trains a Naive Bayes Gaussian mixture model.
Errorpredict_label_with_nb_gmm_model (uint32_t *label_out, double *confidence_out, const Vector_i32 *markers, const NB_gmm_model *model, uint32_t order)
 Predicts the label for a marker sample using a Naive Bayes Gaussian mixture model.
Errorpredict_labels_with_nb_gmm_model (Vector_u32 **labels_out, Vector_d **confidence_out, const Matrix_i32 *markers, const NB_gmm_model *model)
 Predicts the labels for a set of marker samples using a Naive Bayes Gaussian mixture model.
Errorread_nb_gmm_model (NB_gmm_model **model_out, const char *fname)
 Reads a Naive Bayes Gaussian mixture model.
Errorwrite_nb_gmm_model (NB_gmm_model *model, const char *fname)
 Writes a Naive Bayes Gaussian mixture model.
void free_nb_gmm_model (NB_gmm_model *model)
 Frees a Naive Bayes Gaussian mixture model.
Errortrain_nb_gmm_model_tree (NB_gmm_model_tree **tree_out, const Vector_u32 *labels, const Matrix_i32 *markers, const char *tree_xml_fname, const char *tree_dtd_fname)
 Trains a Naive Bayes Gaussian mixture model tree .
Errorpredict_labels_with_nb_gmm_model_tree (Vector_u32 **labels_out, Vector_d **confidence_out, const Matrix_i32 *markers, const NB_gmm_model_tree *tree, uint32_t order)
 Predicts the labels for a set of marker samples using a Naive Bayes Gaussian mixture model tree.
Errorread_nb_gmm_model_tree (NB_gmm_model_tree **tree_out, const char *tree_xml_fname, const char *tree_dtd_fname, const char *model_dirname)
 Reads a Naive Bayes Gaussian mixture model tree from.
Errorwrite_nb_gmm_model_tree (const NB_gmm_model_tree *tree, const char *model_dirname)
 Writes a Naive Bayes Gaussian mixture model tree.
void free_nb_gmm_model_tree (NB_gmm_model_tree *tree)
 Frees a Naive Bayes Gaussian mixture model tree.

Detailed Description

Naive Bayes Gaussian mixture model classifier.

Author:
Joseph Schlecht
License:
Creative Commons BY-NC-SA 3.0

Definition in file nb_gmm.h.


Typedef Documentation

Naive Bayes Gaussian mixture model tree node.

Naive Bayes Gaussian mixture model tree.

Definition at line 193 of file nb_gmm.h.


Function Documentation

void train_nb_gmm_model ( NB_gmm_model **  model_out,
const Vector_u32 labels,
const Matrix_i32 markers,
const Vector_d label_priors,
uint32_t  num_components 
)

Trains a Naive Bayes Gaussian mixture model.

Parameters:
model_outResult parameter. If *model_out is NULL, a model is allocated; otherwise its space is re-used.
labelsLabels for training, with ith element as corresponding to the ith sample in markers.
markersMarkers for training, with ith row as a sample corresponding to the ith label in labels.
label_priorsPriors for each of the labels.
num_componentsNumber of mixture components.

Definition at line 92 of file nb_gmm.c.

Error* predict_label_with_nb_gmm_model ( uint32_t *  label_out,
double *  confidence_out,
const Vector_i32 markers,
const NB_gmm_model model,
uint32_t  order 
)

Predicts the label for a marker sample using a Naive Bayes Gaussian mixture model.

Parameters:
label_outResult parameter.
confidence_outResult parameter.
markersMarker data to predict.
modelTrained model to use for predicting.
orderIndicates which of the The kth best prediction values to return. Starts with 0 representing the overall best, 1 the next best and so on.
Returns:
On success, NULL is returned; otherwise an error is returned.

Definition at line 215 of file nb_gmm.c.

Error* predict_labels_with_nb_gmm_model ( Vector_u32 **  labels_out,
Vector_d **  confidence_out,
const Matrix_i32 markers,
const NB_gmm_model model 
)

Predicts the labels for a set of marker samples using a Naive Bayes Gaussian mixture model.

Parameters:
labels_outResult parameter. If *labels_out is NULL, it is allocated; otherwise its space is re-used.
confidence_outResult parameter. If *confidence_out is NULL, it is allocated; otherwise its space is re-used.
markersMarker data to predict. Each row is a sample for prediction, corresponding to an element in the result parameters.
modelTrained model to use for predicting.
Returns:
On success, NULL is returned; otherwise an error is returned, but the result parameters are not freed.

Definition at line 338 of file nb_gmm.c.

Error* read_nb_gmm_model ( NB_gmm_model **  model_out,
const char *  fname 
)

Reads a Naive Bayes Gaussian mixture model.

Parameters:
model_outResult parameter. If *model_out is NULL, a model is allocated; otherwise its space is re-used.
fnameFile to read the model from.
Returns:
On success, NULL is returned; otherwise an error is returned but does not free result parameter.

Definition at line 395 of file nb_gmm.c.

Error* write_nb_gmm_model ( NB_gmm_model model,
const char *  fname 
)

Writes a Naive Bayes Gaussian mixture model.

Parameters:
modelModel to write.
fnameFile to write to.
Returns:
On success, NULL is returned; otherwise an error is returned.

Definition at line 491 of file nb_gmm.c.

void free_nb_gmm_model ( NB_gmm_model model)

Frees a Naive Bayes Gaussian mixture model.

Parameters:
modelModel to free.

Definition at line 542 of file nb_gmm.c.

Error* train_nb_gmm_model_tree ( NB_gmm_model_tree **  tree_out,
const Vector_u32 labels,
const Matrix_i32 markers,
const char *  tree_xml_fname,
const char *  tree_dtd_fname 
)

Trains a Naive Bayes Gaussian mixture model tree .

Parameters:
tree_outResult parameter.
labelsSample group labels.
markersSample marker values.
tree_xml_fnameXML file containing the model tree information.
tree_dtd_fnameDTD file for validating the XML file, can be NULL.

Definition at line 904 of file nb_gmm.c.

Error* predict_labels_with_nb_gmm_model_tree ( Vector_u32 **  labels_out,
Vector_d **  confidence_out,
const Matrix_i32 markers,
const NB_gmm_model_tree tree,
uint32_t  order 
)

Predicts the labels for a set of marker samples using a Naive Bayes Gaussian mixture model tree.

Parameters:
labels_outResult parameter. If *labels_out is NULL, it is allocated; otherwise its space is re-used.
confidence_outResult parameter. If *confidence_out is NULL, it is allocated; otherwise its space is re-used.
markersMarker data to predict. Each row is a sample for prediction, corresponding to an element in the result parameters.
treeTrained model tree to use for predicting.
orderThe kth order prediction value. Zero being the best prediction.
Returns:
On success, NULL is returned; otherwise an error is returned, but the result parameters are not freed.

Definition at line 1012 of file nb_gmm.c.

Error* read_nb_gmm_model_tree ( NB_gmm_model_tree **  tree_out,
const char *  tree_xml_fname,
const char *  tree_dtd_fname,
const char *  model_dirname 
)

Reads a Naive Bayes Gaussian mixture model tree from.

Parameters:
tree_outResult parameter.
tree_xml_fnameXML file containing the model tree information.
tree_dtd_fnameDTD file for validating the XML file, can be NULL.
model_dirnameDirectory prefixing each model file in the tree.

Definition at line 1102 of file nb_gmm.c.

Error* write_nb_gmm_model_tree ( const NB_gmm_model_tree tree,
const char *  model_dirname 
)

Writes a Naive Bayes Gaussian mixture model tree.

Parameters:
treeModel tree to write.
model_dirnameDirectory to prefix to each model file in the tree.

Definition at line 1154 of file nb_gmm.c.

void free_nb_gmm_model_tree ( NB_gmm_model_tree tree)

Frees a Naive Bayes Gaussian mixture model tree.

Parameters:
treeModel tree to free.

Definition at line 1189 of file nb_gmm.c.