机器学习笔记-14

机器学习系统设计

1.导入

以垃圾邮件分类器为例子,当我们想要做一个能够区分邮件是否为垃圾邮件的项目的时候,首先在大量垃圾邮件中选出出现频次较高的10000-50000词作为词汇表,并为其设置特征,在对邮件分析的时候输出该邮件的特征判断是否为垃圾邮件。

假设词汇表为(word1,word2,word3),其中word1和word3是垃圾邮件中出现频次很高的,word2是非垃圾邮件中常出现的。比如一个邮件的输出为(1,0,1),意思就是邮件中含有word1、word3,没有word2,那么可以判定为垃圾邮件。

注意词汇表中不止包含垃圾邮件中的词还包括非垃圾邮件出现的词,上述例子中word2就是从非垃圾邮件中选取的。

上面的例子中的word1、word2、word3都是随便起的名字不具有任何含义!!

如果还没有理解的可以看看这个视频

2.误差分析(Error Analysis)

依旧以垃圾邮件分类器为例子,当我们算法将一些垃圾邮件、非垃圾邮件错误分类时,我们可以把这些被误分的邮件统计起来看看有什么共同的特征和规律,以此来设计新特征、改进算法。

为了方便统计引入数值评价指标"误差率",这个大家应该都懂。

在验证集上做误差分析,不要在测试集上做误差分析。

在我们新开始一个机器学习问题时,可以先快速设计一个简单粗暴的算法,随后通过误差分析找到算法的缺陷以及优化的方向。

不用学习曲线是因为最开始的时候样本少画不出来。

3.不对称性分类的误差评估

偏斜类(skewed classes):正负样本比例非常大。

当遇到偏斜类问题时,比如说一个二元分类问题的训练集中一共有10个样本,其中9个y=1,只有1个y=0,这时就会产生只要我们的算法一直输出y=1误差率就会很小,但是这并不能泛化,所以要用其他的数值评价指标来评判算法是否足够优秀。

继续以垃圾邮件分类器为例子。

查准率(Precision) :对于所有我们预测是垃圾邮件的邮件中有多大比例是真的是垃圾邮件, 查准率 = 预测结果为垃圾邮件的邮件中真的是垃圾邮件的邮件数量 预测出的垃圾邮件数量 查准率=\frac{预测结果为垃圾邮件的邮件中真的是垃圾邮件的邮件数量}{预测出的垃圾邮件数量} 查准率=预测出的垃圾邮件数量预测结果为垃圾邮件的邮件中真的是垃圾邮件的邮件数量。查准率越高越好。

召回率(Recall) :对于所有的垃圾邮件我们有多大比例能发现他是垃圾邮件, 召回率 = 预测值和真实值都是垃圾邮件的邮件数量 真正的垃圾邮件数量 召回率=\frac{预测值和真实值都是垃圾邮件的邮件数量}{真正的垃圾邮件数量} 召回率=真正的垃圾邮件数量预测值和真实值都是垃圾邮件的邮件数量。同样召回率也是越高越好。

拥有高查准率和高召回率的模型是一个好的模型,但是根据查准率和召回率的定义我们可以看出二者是此消彼长的关系,所以选择一个好的模型需要另一个数值评价指标对查准率和召回率进行平衡取舍。以P代表查准率、R代表召回率,故而定义F值 或 F 1 F_1 F1值:
F = 2 P R P + R F=2\frac{PR}{P+R} F=2P+RPR

F值越高的越好。

除此之外,在我们定义机器学习问题的特征时,可以将心比心,自己尝试一下假如自己是专业人士,用自己所给定的特征能否推出结果。比如假设你是一个卖房子的,只设计了一个房子面积的特征,并没有给其他的特征比如地段、是否精装、房型等等,要输出价格,显然是不能推出的,所以同样的机器学习算法也不能输出对应的假设。

相关推荐
正义的彬彬侠37 分钟前
sklearn.datasets中make_classification函数
人工智能·python·机器学习·分类·sklearn
belldeep39 分钟前
python:用 sklearn 转换器处理数据
python·机器学习·sklearn
ctrey_39 分钟前
2024-11-13 学习人工智能的Day26 sklearn(2)
人工智能·学习·sklearn
安静的_显眼包O_o40 分钟前
from sklearn.preprocessing import Imputer.处理缺失数据的工具
人工智能·python·sklearn
安静的_显眼包O_o1 小时前
from sklearn.feature_selection import VarianceThreshold.移除低方差的特征来减少数据集中的特征数量
人工智能·python·sklearn
AI服务老曹1 小时前
不仅能够实现前后场的简单互动,而且能够实现人机结合,最终实现整个巡检流程的标准化的智慧园区开源了
大数据·人工智能·深度学习·物联网·开源
杜若南星1 小时前
保研考研机试攻略(满分篇):第二章——满分之路上(1)
数据结构·c++·经验分享·笔记·考研·算法·贪心算法
云空1 小时前
《InsCode AI IDE:编程新时代的引领者》
java·javascript·c++·ide·人工智能·python·php
正义的彬彬侠2 小时前
CatBoost 中对分类特征进行目标变量统计编码 公式解析
人工智能·机器学习·集成学习·boosting·catboost
字节跳动数据平台2 小时前
火山引擎 VeDI 平台以 AIGC 技术,助力企业提效营销、快速增长
人工智能