博客
关于我
机器学习之机器学习系统测试
阅读量:183 次
发布时间:2019-02-28

本文共 1741 字,大约阅读时间需要 5 分钟。

#Prioritizing what to work on:Spam classification example

实际工作工程中,我们应该优先处理哪些事情?

为了应用监督学习,首先要想的是如何来表示邮件的特征向量x:

  • 在特征向量中放入0和1,对应文本中该单词是否出现。

如何在有限时间下让你的垃圾邮件分类器具有高精准度和低错误率?

  • 收集大量数据
    • “honeypot”项目通过构建虚假的邮箱地址,然后故意将这些地址暴露给垃圾邮件的发送者,以此来收集大量的垃圾邮件然后得到大量的垃圾邮件数据来训练分类算法
  • 用更复杂的特征变量来描述邮件
  • 关注邮件的主体部分/正文,并构建更复杂的特征

 

1、通过一个简单的算法来快速实现它,然后通过交叉验证来测试数据;

2、画出相应学习曲线以及检验误差来找出算法是否存在高偏差或者高方差或其他的问题,在作出这些分析之后再来决定是否使用更多的数据或者特征等等;

3、误差分析:看交叉验证的数据,看被算法错误分类的文件,有什么共同的特征和规律,思考应该设计怎样的新特征,或目前的系统有什么优点和缺点;

 

#Error analysis(误差分析)

手动地去检查算法所出现的失误的过程,能导向最有成效的道路:

  • pharma:制药
  • replica:假货
  • fishing email:钓鱼邮件(诱导密码)

 

#numerical evaluation(数值估计的方法)

改进学习算法的时候,如果算法能够返回一个数值评价指标来估计算法执行的效果,将会很有帮助:

*在自然语言处理中,这种方法是通过一种stemming software(词干提取软件)实现的,可去搜索引擎上搜一下Porter Stemmer,这种软件在词干提取方面做得相当不错,会将所有discount、discounts等视作同一个单词。

  • cross validation error(交叉验证错误率):通过数组方法来评估算法的效果将会非常有用,通过交叉验证在使用和不使用词干提取时各自的错误率来估计算法的效果。

*强烈建议,在交叉验证向量上来坐误差分析。

 

#Error metrics for skewed classes(不对称性分类的误差评估)

#skewed classes(偏斜率):一个类中的样本数与另一个类的数据相比多很多。

如果有一个偏斜类,用classification accuracy(分类精确度)并不能很好地衡量算法,因为你可能会获得一个很高的精确度,非常低的错误率,但是我们并不知道,我们是否真的提升了分类模型的质量:

当我们遇到这样一个偏斜类时,我们希望有一个不同的error metric(误差度量值)或者不同的evaluation meric(评估度量值),

其中一种评估度量值叫precision/recall(查准率/召回率):

  • true positive(真阳性):预测和样本均为1;
  • true negative(真阴性):预测和实际均为0;
  • false positive(假阳性):预测为1但是实际为0;
  • false negative(假阴性):预测0实际1。
  • precision(查准率):对于所有预测的患有癌症的病人中有多大比率的病人是真正患有癌症的。【越高越好】
  • recall(召回率):如果所有测试集里的病人确实得了癌症,有多大比例我们正确预测他们得了癌症。【越高越好】

*如果这个类出现得非常少,则总是习惯用y=1。

 

#Trading off precision and recall(精确度和召回率的权衡)

有没有办法自动选取临界值?

  • F_1 score(F_1值)

 

#Data for machine learning(机器学习数据)

  • perceptron(感知器)
  • Winnow类似线性回归,但现在用得少了
  • memory-based(基于内存的学习算法)
  • naive Bayes(朴素贝叶斯算法)

Key test:

1、一个人类专家看到了特征值x能有信心预测出y值吗?因为这样证明y可以根据特征值x被准确的预测出来;

2、我们能否得到一组庞大的训练集,并且在这个训练集中训练一个有很多参数的学习算法。

 


PS.内容为学习吴恩达老师机器学习的笔记【】

转载地址:http://vpqn.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现update数据实时同步_实际操作05---大数据之Nifi工作笔记0044
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>