<?php require_once dirname(__file__) . "/parse.php"; require_once dirname(__file__) . "/predict.php"; $users = parse_csv("anonwhipdata.csv"); $predictor = new Predictor($users); $sqdiff = 0; $matches = 0; $sqcount = 0; foreach ($users as $user) { if ($user->monthly_rate) { $predictor = new Predictor($users); $result = $predictor->predict($user); if ($result) { $difference = $user->monthly_rate - $result->monthly_rate; $sqdiff += $difference * $difference; $sqcount += 1; $matches += $result->matches; } } } printf("%0.2f %0.2f\n", sqrt($sqdiff / $sqcount), ($matches / $sqcount));
public function read($input) { $xfer = 0; $fname = null; $ftype = 0; $fid = 0; $xfer += $input->readStructBegin($fname); while (true) { $xfer += $input->readFieldBegin($fname, $ftype, $fid); if ($ftype == TType::STOP) { break; } switch ($fid) { case 1: if ($ftype == TType::STRUCT) { $this->Y = new Response(); $xfer += $this->Y->read($input); } else { $xfer += $input->skip($ftype); } break; case 2: if ($ftype == TType::LST) { if ($input instanceof TProtocol::$TBINARYPROTOCOLACCELERATED && function_exists('thrift_protocol_binary_deserialize')) { $this->X = thrift_protocol_binary_deserialize(TType::LST, $input, 'Predictor'); } else { $this->X = array(); $_size14 = 0; $_etype17 = 0; $xfer += $input->readListBegin($_etype17, $_size14); for ($_i18 = 0; $_i18 < $_size14; ++$_i18) { $elem19 = null; $elem19 = new Predictor(); $xfer += $elem19->read($input); $this->X[] = $elem19; } $xfer += $input->readListEnd(); } } else { $xfer += $input->skip($ftype); } break; default: $xfer += $input->skip($ftype); break; } $xfer += $input->readFieldEnd(); } $xfer += $input->readStructEnd(); return $xfer; }