我有一个小函数,它应该基于机器学习算法进行预测。这个函数一开始是无法工作的,因此我加入了一个打印语句来检查值,然后它突然开始正常工作了。当我注释掉这个打印语句时,它再次停止工作。我是否遗漏了一些原因导致它发生这种情况?
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;
}
有什么想法吗?