垃圾评论分类
2016-07-04 16:02
155 查看
一、数据特征准备
1选取汉语词典(包含常用词,姓名等) -> one hot 向量
2选取停用词词典 ->去除停用词的影响
3选取同义词词典 ->增加表达多词同意的能力
4选取比较长的固定搭配词典,比如成语,乐队名字等,增加分词正确率
通过以上词典将每一句评论转换成one hot 向量,作为训练数据与测试验证数据集
二、spark 训练
使用spark的朴素贝叶斯训练数据
三、在测试集上预测
四、评估模型
非垃圾识别精准率:P=3480035000=99.4%
垃圾识别精准率:P=830010000=83%
因为要识别的是垃圾评论,所以设
postive:垃圾评论
negative:非垃圾评论
则:
TP :8300
FN:1700
FP:200
TN:34800
准确率:
P=TPTP+FP=97.6%
召回率:
R=TPTP+FN=92.2%
并且使用mllib.evalution.BinaryClassficationMetrics类,计算ROC面积AUC值共同评估模型。
五、模型参数调优
1、增加迭代次数
2、减少学习率,或者使用学习率衰减方法
3、加入正则化,如果模型可加
同样通过AUC值来判断参数优劣,使用交叉验证集来判断
1选取汉语词典(包含常用词,姓名等) -> one hot 向量
2选取停用词词典 ->去除停用词的影响
3选取同义词词典 ->增加表达多词同意的能力
4选取比较长的固定搭配词典,比如成语,乐队名字等,增加分词正确率
通过以上词典将每一句评论转换成one hot 向量,作为训练数据与测试验证数据集
二、spark 训练
使用spark的朴素贝叶斯训练数据
import sparl.mllib.classification.NaiveBayes NBmodel = NaiveBayes.train(train_data)
三、在测试集上预测
result = NBmodel.predict(test_data)
四、评估模型
非垃圾评论 | 被识别为非垃圾 | 被识别为垃圾 |
---|---|---|
35000 | 34800 | 200 |
垃圾评论 | 被识别为垃圾 | 被识别为非垃圾 |
---|---|---|
10000 | 8300 | 1700 |
垃圾识别精准率:P=830010000=83%
因为要识别的是垃圾评论,所以设
postive:垃圾评论
negative:非垃圾评论
则:
TP :8300
FN:1700
FP:200
TN:34800
准确率:
P=TPTP+FP=97.6%
召回率:
R=TPTP+FN=92.2%
并且使用mllib.evalution.BinaryClassficationMetrics类,计算ROC面积AUC值共同评估模型。
五、模型参数调优
1、增加迭代次数
2、减少学习率,或者使用学习率衰减方法
3、加入正则化,如果模型可加
同样通过AUC值来判断参数优劣,使用交叉验证集来判断
相关文章推荐
- Spark RDD API详解(一) Map和Reduce
- 使用spark和spark mllib进行股票预测
- 我是运营,我没有假期
- Spark随谈——开发指南(译)
- Spark,一种快速数据分析替代方案
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- 简述MySQL分片中快速数据迁移
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- C#中的委托数据类型简介
- SQL Server删除表及删除表中数据的方法
- SqlServer2008误操作数据(delete或者update)后恢复数据的方法
- 给你的数据库文件减肥
- Oracle数据更改后出错的解决方法
- Oracle数据库数据丢失恢复的几种方法总结