39 #include <boost/foreach.hpp> 40 #include <boost/optional/optional.hpp> 45 template<
class InputType>
64 : Base(kernel, basis, offset, 1u)
70 {
return "MissingFeaturesKernelExpansion"; }
73 return boost::shared_ptr<State>(
new EmptyState());
77 virtual void eval(BatchInputType
const& patterns, BatchOutputType& outputs)
const{
91 for(std::size_t p = 0; p !=
size(patterns); ++p){
101 for (std::size_t i = 0; i != indexedBasis.
size(); ++i){
111 void eval(BatchInputType
const& patterns, BatchOutputType& outputs,
State & state)
const{
112 eval(patterns, outputs);
121 template<
class InputTypeT>
123 const RealVector&
alpha,
124 const RealVector& scalingCoefficient,
125 InputTypeT
const& missingness
128 SIZE_CHECK(alpha.size() == scalingCoefficient.size());
138 for (std::size_t i = 0; i < alpha.size(); ++i){
139 for (std::size_t j = 0; j < alpha.size(); ++j){
146 norm_sqr += evalResult *
alpha(i) *
alpha(j) / scalingCoefficient(i) / scalingCoefficient(j);
151 return std::sqrt(norm_sqr);
155 const RealVector&
alpha,
156 const RealVector& scalingCoefficient
159 SIZE_CHECK(alpha.size() == scalingCoefficient.size());
169 for (std::size_t i = 0; i < alpha.size(); ++i){
170 for (std::size_t j = 0; j < alpha.size(); ++j){
176 norm_sqr += evalResult *
alpha(i) *
alpha(j) / scalingCoefficient(i) / scalingCoefficient(j);
181 return std::sqrt(norm_sqr);
187 BOOST_FOREACH(
double v, scalingCoefficients)