У меня есть небольшая функция, которая должна делать прогноз на основе алгоритма машинного обучения.Функция не работала, поэтому я добавил оператор печати, чтобы проверить значение, и внезапно он начал работать.Когда я закомментирую строку печати, она снова перестает работать.Я что-то упускаю из-за того, почему это произошло?
int makePrediction( const InstanceT & instance, bool biased ){
double dotProduct = ( biased ? instance * _weights + _bias : instance * _weights );
std::cout << "dotProduct = " << dotProduct << std::endl;
return ( dotProduct > 0 ? 1 : -1 );
}
по какой-то причине дает другой результат, чем
int makePrediction( const InstanceT & instance, bool biased ){
double dotProduct = ( biased ? instance * _weights + _bias : instance * _weights );
return ( dotProduct > 0 ? 1 : -1 );
}
, и показывает, что результаты отличаются при одинаковыхвходы, я вызываю эту функцию с:
std::vector<InstanceT> _instances = populate_data() //this works for both versions
for ( int i = 0; i < _instances.size(); i++ ){
std::cout << "prediction: " << makePrediction( _instances[i], true ) << std::endl;
}
Есть мысли?