猫眼字体反爬
动态变化的字形使用阈值判断误差率较大,甚至看到有的老哥使用ocr去搞…,大概两个月前,第一次看到有大佬使用knn算法搞字体反爬(源码地址),听说效果不错,一直没有时间去尝试,不仅仅是没有时间,对于未知领域特别是机器学习,不知道从何搞起,但是遇到问题总得解决,今天逼着自己去搞
knn算法介绍
如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别
举个例子,你可以通过观察某位老哥交往的朋友,大概能了解到这个老哥是什么样的人,毕竟物以类聚,人以群分
具体实现流程
- 获取n套字体文件(越多越好),然后将所有字符对应的字形坐标信息保存到一个列表当中(注意做好字符与字形坐标的对应关系)
- 使用knn算法训练数据, 通常情况下,拿到样本数据,先进行缺失值处理,然后取出特征值和目标值,再对样本数据进行分割,分为训练集和测试集,然后再对样本数据进行标准化处理,最后进行训练预测, 由于采集的字体数据不多(偷个懒,大家别学我),如果按随机分割的方式,训练集容易缺失某些字符,导致预测测试集的结果误差率较大,所以在此固定前40个样本为训练集,最后10个样本为测试集合,另外