垃圾广告短信识别

垃圾短信是指未经用户同意向用户发送的用户不愿意收到的短信息,或用户不能根据自己的意愿拒绝接收的短信息,主要包含以下属性:(一)未经用户同意向用户发送的商业类、广告类等短信息; (二)其他违反行业自律性规范的短信息

垃圾短信泛滥,已经严重影响到人们正常生活、运营商形象乃至社会稳定。

中国国内手机垃圾短信大致分五大类:

第一类:是“骚扰型”,多为一些无聊的恶作剧,发送号码多为手机或小灵通号码;

第二类:是“欺诈型”,此类短信多是想骗取用户的钱财,如中奖信息,发送号码多为手机或小灵通号码;

第三类:非法广告短信,如出售黑车、麻醉枪之类,发送号码多为手机或小灵通号码;

第四类:SP(短信业务提供商)违规群发,误导用户订制短信业务,发送号码多为SP接入代码,一般为四位数字。发送号码不分网内网外,既有通过移动号码对联通用户发送的,也有外地联通号码对本区用户发送的。

第五类:诅咒型短信, 此类短信多以让更多用户转发为目的而加以诅咒内容以威胁短信接收者按照其意愿来做出不自愿行为。

用机器学习完成一个能够识别垃圾短信的模型:

垃圾短信都大概长什么样,例如下面就是一条垃圾短信:

【流量精英华山论剑】线上分享应用活动,邀您与众高手一战江湖!战斗值排名高者将获得iphone手机、ipad mini、数码相机等豪华大礼相赠!还有抽奖好礼送院线通电影票、流量卡。快来【翼分享】行走江湖:http://wap.189share.com/dghd30

【百度】【百度外卖】亲爱的用户,您的外卖已送达,感谢您对我们的支持!您有任何意见都请不吝评价:1、非常满意,赞一个;2、一般,还会来体验;3、很不满意(请告知下原因吧,我们一定竭力改进,例如:配送速度、菜品问题、压根没送到等)。

用机器学习搭建一套简易的模型:

机器学习库介绍:

scikit-learn 是一个用于机器学习的 Python 模块,建立在 SciPy 基础之上。

主要特点:

操作简单、高效的数据挖掘和数据分析

无访问限制,在任何情况下可重新使用

建立在NumPy、SciPy和matplotlib基础上

使用商业开源协议--BSD许可证

普通最小二乘法:

LinearRegression使用系数 拟合一个线性模型。拟合的目标是要将线性

逼近预测值( ) 和数据集中观察到的值( ) 两者之差的平方和尽量降到最小。写成数学

公式,即是要解决以下形式的问题

岭回归:

岭回归(Ridge regression) 引入了一种对系数大小进行惩罚的措施,来解决普通最小二乘可

能遇到的某些问题。岭回归最小化带有惩罚项的残差平方和

弹性网:

多任务Lasso:

多任务Lasso(MultiTaskLasso ) 对多元联合回归问题给出一个系数稀疏的线性模型。这

里 y 是一个n_samples * n_tasks的二维数组。其限制是选出的特征对所有回归问题(也叫作

任务) 都一样

最小角回归:

最小角回归(Least-angle regression (LARS)) 是一种用于高维数据的回归算法,由Bradley

Efron, Trevor Hastie, Iain Johnstone和Robert Tibshirani共同提出

接下来实战:

1.读取数据,并拆分数据为训练集和测试集

2.根据传入的文本列表,创建一个最小频次为min_freq的字典,并返回字典word -> wordid

3.将传入的文本转化为向量,返回向量大小为[n_samples, dict_size]

4.评估数据集,并返回评估结果,包括:正确率、AUC值

5.训练集配置

6.运行

最终运行结果(pycharm):

训练集正确率:99.1114%

训练集AUC值:0.999249

测试集正确率:96.1731%

测试AUC值:0.989991

这里是垃圾短信训练集截图:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180115G0Z9X600?refer=cp_1026

扫码关注云+社区