Example #1
0
def create_component_model(column_metadata, column_hypers, suffstats):
    modeltype = column_metadata['modeltype']
    if modeltype == 'normal_inverse_gamma':
        component_model = CCM.p_ContinuousComponentModel(
            column_hypers,
            count=suffstats.get(b'N', 0),
            sum_x=suffstats.get(b'sum_x', None),
            sum_x_squared=suffstats.get(b'sum_x_squared', None))
    elif modeltype == 'symmetric_dirichlet_discrete':
        # TODO Can we change the suffstats data structure not to
        # include the total count in the dictionary of per-item
        # counts, please?
        suffstats = copy.copy(suffstats)
        count = suffstats.pop(b'N', 0)
        component_model = MCM.p_MultinomialComponentModel(column_hypers,
                                                          count=count,
                                                          counts=suffstats)
    elif modeltype == 'vonmises':
        component_model = CYCM.p_CyclicComponentModel(
            column_hypers,
            count=suffstats.get(b'N', 0),
            sum_sin_x=suffstats.get(b'sum_sin_x', None),
            sum_cos_x=suffstats.get(b'sum_cos_x', None))
    else:
        raise ValueError('unknown modeltype: %r' % (modeltype, ))
    return component_model
Example #2
0
def create_component_model(column_metadata, column_hypers, suffstats):
    modeltype = column_metadata['modeltype']
    if modeltype == 'normal_inverse_gamma':
        component_model = CCM.p_ContinuousComponentModel(
            column_hypers,
            count=suffstats.get(b'N', 0),
            sum_x=suffstats.get(b'sum_x', None),
            sum_x_squared=suffstats.get(b'sum_x_squared', None))
    elif modeltype == 'symmetric_dirichlet_discrete':
        # TODO Can we change the suffstats data structure not to
        # include the total count in the dictionary of per-item
        # counts, please?
        suffstats = copy.copy(suffstats)
        count = suffstats.pop(b'N', 0)
        component_model = MCM.p_MultinomialComponentModel(
            column_hypers, count=count, counts=suffstats)
    elif modeltype == 'vonmises':
        component_model = CYCM.p_CyclicComponentModel(
            column_hypers,
            count=suffstats.get(b'N', 0),
            sum_sin_x=suffstats.get(b'sum_sin_x', None),
            sum_cos_x=suffstats.get(b'sum_cos_x', None))
    else:
        raise ValueError('unknown modeltype: %r' % (modeltype,))
    return component_model
Example #3
0
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
from __future__ import print_function
import numpy
import crosscat.cython_code.ContinuousComponentModel as CCM
import crosscat.cython_code.MultinomialComponentModel as MCM
import crosscat.cython_code.State as State

c_hypers = dict(r=10, nu=10, s=10, mu=10)
ccm = CCM.p_ContinuousComponentModel(c_hypers)
print("empty component model")
print(ccm)
#
for element in [numpy.nan, 0, 1, numpy.nan, 2]:
    print()
    ccm.insert_element(element)
    print("inserted %s" % element)
    print(ccm)

m_hypers = dict(dirichlet_alpha=10, K=3)
mcm = MCM.p_MultinomialComponentModel(m_hypers)
print("empty component model")
print(mcm)

for element in [numpy.nan, 0, 1, numpy.nan, 2]:
    print()
    mcm.insert_element(element)
    print("inserted %s" % element)
    print(mcm)
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
import numpy
import crosscat.cython_code.ContinuousComponentModel as CCM
import crosscat.cython_code.MultinomialComponentModel as MCM
import crosscat.cython_code.State as State

c_hypers = dict(r=10,nu=10,s=10,mu=10)
ccm = CCM.p_ContinuousComponentModel(c_hypers)
print "empty component model"
print ccm
#
for element in [numpy.nan, 0, 1, numpy.nan, 2]:
    print
    ccm.insert_element(element)
    print "inserted %s" % element
    print ccm

m_hypers = dict(dirichlet_alpha=10,K=3)
mcm = MCM.p_MultinomialComponentModel(m_hypers)
print "empty component model"
print mcm

for element in [numpy.nan, 0, 1, numpy.nan, 2]:
    print
    mcm.insert_element(element)
    print "inserted %s" % element
    print mcm