机器学习中的特征提取与数据处理技巧
1. 创造新特征
在尝试提出新想法时,从不同角度看待问题是很有用的方法。例如编写代码时,先设想“理想路径”,但测试代码时,转换思路问“让程序崩溃的最快方法是什么”会更有效。
对于改进分类器,之前查看各类别中最频繁出现的词有显著效果,现在尝试查看每个文档类别中最少出现的词。通过对之前代码略作修改,可提取一组中最少使用的标记:
let rareTokens n (tokenizer:Tokenizer) (docs:string []) =
let tokenized = docs |> Array.map tokenizer
let tokens = tokenized |> Set.unionMany
tokens
|> Seq.sortBy (fun t -> countIn tokenized t)
|> Seq.take n
|> Set.ofSeq
let rareHam = ham |> rareTokens 50 casedTokenizer |> Seq.iter (printfn "%s")
let rareSpam = spam |> rareTokens 50 casedTokenizer |> Seq.iter (printfn "%s")
测试结果如下表所示:
| 类别 | 标记 |
| — | — |
| Ham | 000pes, 0quit, 100, 1120, 116, …,
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



