MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / naive_bayes_train

Function naive_bayes_train

examples/machine_learning/naive_bayes.cpp:25–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23}
24
25void naive_bayes_train(float *priors, array &mu, array &sig2,
26 const array &train_feats, const array &train_classes,
27 int num_classes) {
28 const int feat_len = train_feats.dims(0);
29 const int num_samples = train_classes.elements();
30
31 // Get mean and variance from trianing data
32 mu = constant(0, feat_len, num_classes);
33 sig2 = constant(0, feat_len, num_classes);
34
35 for (int ii = 0; ii < num_classes; ii++) {
36 array idx = where(train_classes == ii);
37 array train_feats_ii = lookup(train_feats, idx, 1);
38
39 mu(span, ii) = mean(train_feats_ii, 1);
40
41 // Some pixels are always 0. Add a small variance.
42 sig2(span, ii) = var(train_feats_ii, AF_VARIANCE_SAMPLE, 1) + 0.01;
43
44 // Calculate priors
45 priors[ii] = (float)idx.elements() / (float)num_samples;
46 }
47
48 mu.eval();
49 sig2.eval();
50}
51
52array naive_bayes_predict(float *priors, const array &mu, const array &sig2,
53 const array &test_feats, int num_classes) {

Callers 2

benchmark_nbFunction · 0.85
naive_bayes_demoFunction · 0.85

Calls 8

constantFunction · 0.85
whereFunction · 0.50
lookupClass · 0.50
meanFunction · 0.50
varFunction · 0.50
dimsMethod · 0.45
elementsMethod · 0.45
evalMethod · 0.45

Tested by

no test coverage detected