void CExactInferenceMethod::check_members() { if (!m_labels) SG_ERROR("No labels set\n") if (m_labels->get_label_type() != LT_REGRESSION) SG_ERROR("Expected RegressionLabels\n") if (!m_features) SG_ERROR("No features set!\n") if (m_labels->get_num_labels() != m_features->get_num_vectors()) SG_ERROR("Number of training vectors does not match number of labels\n") if(m_features->get_feature_class() == C_COMBINED) { CDotFeatures* feat = (CDotFeatures*)((CCombinedFeatures*)m_features)-> get_first_feature_obj(); if (!feat->has_property(FP_DOT)) SG_ERROR("Specified features are not of type CFeatures\n") if (feat->get_feature_class() != C_DENSE) SG_ERROR("Expected Simple Features\n") if (feat->get_feature_type() != F_DREAL) SG_ERROR("Expected Real Features\n") SG_UNREF(feat); }
CRegressionLabels* CGaussianProcessRegression::apply_regression(CFeatures* data) { if (data) { if(data->get_feature_class() == C_COMBINED) { CDotFeatures* feat = (CDotFeatures*)((CCombinedFeatures*)data)-> get_first_feature_obj(); if (!feat->has_property(FP_DOT)) SG_ERROR("Specified features are not of type CFeatures\n") if (feat->get_feature_class() != C_DENSE) SG_ERROR("Expected Simple Features\n") if (feat->get_feature_type() != F_DREAL) SG_ERROR("Expected Real Features\n") SG_UNREF(feat); } else { if (!data->has_property(FP_DOT))
CRegressionLabels* CGaussianProcessRegression::apply_regression(CFeatures* data) { if (data) { if(data->get_feature_class() == C_COMBINED) { CDotFeatures* feat = (CDotFeatures*)((CCombinedFeatures*)data)-> get_first_feature_obj(); if (!feat->has_property(FP_DOT)) SG_ERROR("Specified features are not of type CFeatures\n"); if (feat->get_feature_class() != C_DENSE) SG_ERROR("Expected Simple Features\n"); if (feat->get_feature_type() != F_DREAL) SG_ERROR("Expected Real Features\n"); SG_UNREF(feat); } else { if (!data->has_property(FP_DOT)) SG_ERROR("Specified features are not of type CFeatures\n"); if (data->get_feature_class() != C_DENSE) SG_ERROR("Expected Simple Features\n"); if (data->get_feature_type() != F_DREAL) SG_ERROR("Expected Real Features\n"); } SG_UNREF(m_data); SG_REF(data); m_data = (CFeatures*)data; update_kernel_matrices(); } else if (!m_data) SG_ERROR("No testing features!\n"); else if (update_parameter_hash()) update_kernel_matrices(); if (m_return == GP_RETURN_COV) { CRegressionLabels* result = new CRegressionLabels(getCovarianceVector()); return result; } if (m_return == GP_RETURN_MEANS) { CRegressionLabels* result = new CRegressionLabels(getMeanVector()); return result; } else { SGVector<float64_t> mean_vector = getMeanVector(); SGVector<float64_t> cov_vector = getCovarianceVector(); index_t size = mean_vector.vlen+cov_vector.vlen; SGVector<float64_t> result_vector(size); for (index_t i = 0; i < size; i++) { if (i < mean_vector.vlen) result_vector[i] = mean_vector[i]; else result_vector[i] = cov_vector[i-mean_vector.vlen]; } CRegressionLabels* result = new CRegressionLabels(result_vector); return result; } }