anchor.diff:  
   //let rfQuality = evaluate rfLearn
   submission rfLearn
  -//0.48737 = kaggle rsme; oobrmserror = 0.4776784128; rmserror = 0.4303968628
  -//? = kaggle rsme; oobrmserror = 0.4147019175; rmserror = 0.3529753185
  +//0.48737 = kaggle rsme; RDF RMS Error: 0.430396; Out-of-bag RMS Error: 0.477678
   //0.48371 = kaggle rsme; RDF RMS Error: 0.451875; Out-of-bag RMS Error: 0.475592
   //0.47806 = kaggle rsme; RDF RMS Error: 0.446892; Out-of-bag RMS Error: 0.470399
   //0.47774 = kaggle rsme; RDF RMS Error: 0.446649; Out-of-bag RMS Error: 0.470098
  
positive.code:           match searchedBrand with // is query brand name in product title?
            | Some b -> if b |> containedIn title then 1 else -1
            | None -> 0
      [| float uniqueWords.Length
         float words.Length
         float title.Length
  
negative.code:        float attrMatches.Length
         (if attributes.Length > 0 then 1. else 0.)
         (if lastWordMatch then 1. else 0.)
         float fwd
         float bwd
         float (attrNameMatches |> Seq.length)
         queryTitlePosScore
  //       float attrMatches.Length / float uniqueWords.Length
  