美文网首页机器学习与数据挖掘
机器学习笔记:分类(classification)

机器学习笔记:分类(classification)

作者: 黑羊的皇冠 | 来源:发表于2019-03-18 11:38 被阅读3次

-前言:

分类是机器学习非常重要的模块,也是很基础的一块。正是因为基础也很重要,反而不知道如何去概括和全面理清,后续会继续来填补这个坑,之后如果有需到相关的东西,也会尽量分析。这里只是记录了一些很基础的内容。欢迎指出不足,一起学习。

一、分类问题

常见的分类问题有二分类,多分类问题。同时多分类问题有分为互斥多分类问题,非互斥多分类问题。

如“房子涨还是跌?”这就是二分类问题;绩效评定(S、A、B、C),新闻分类(娱乐类、体育类、财经类)这些都是多分类问题,其中绩效评定因为只能选择一个等级,所以我们称为互斥类多分类问题。新闻分类中一篇新闻可以有多个分类,所以我们称为非互斥类多分类问题,分类问题关系如图2-1所示


图1-1 分类问题关系

分类问题的不同,我们选取的算法也就不同,所以我们先明确问题的所属。

二、分类流程

分类过程,如图2-1所示

图2-1 分类过程
2.1 提取特征与特征选取

特征提取和特征选择是DimensionalityReduction(降维)的两种方法,针对于the curse of dimensionality(维灾难),都可以达到降维的目的。但是这两个有所不同。如图2-2

图 2-2 特征提取与特征选择

a) 特征提取(Feature Extraction):特征抽取后的新特征是原来特征的一个映射。

b) 特征选择(Feature Selection):特征选择后的特征是原来特征的一个子集。

c) 特征提取是站在一个更高的角度去看问题,从中找到问题的本质,用更通俗的方式来表达这个问题和理论,这个就是特征提取要做的事情。

d) 如果只是想对现有的问题的观点和描述“取其精华,去其糟粕”,这个是所谓特征选择。只是对现有进行筛选。

e) 特征提取和特征选择统称为降维。

2.2 模型训练过程
2.2.1 划分数据

模型训练之前通常将数据分为三部分,训练集(training set)、测试集(test set)、验证集(validation set)
training set用来训练模型, validation set用来统计单一评估指标,调节参数, 选择算法。 test set 则用来在最后整体评估模型的性能。

2.2.2 数据划分

(1)留出法

  • 把数据集分成互不相交的两部分,一部分是训练集,一部分是测试集。

  • 保持数据分布大致一致,类似分层抽样

  • 训练集数据的数量应占2/3到4/5

  • 为了保证随机性,将数据集多次随机划分为训练集和测试集,然后在对多次划分结果取平均。

(2)交叉验证法

  • 将数据集随机分为互斥的k个子集,为保证随机性,P次随机划分取平均。

  • 将k个子集随机分为k-1个一组剩下一个为另一组,有k种分法。

  • 将每一种分组结果中,k-1个子集的组当做训练集,另外一个当做测试集,这样就产生了k次预测,对其取平均

  • 称为p次k折交叉验证,一般取k=10

(3)自助法

  • 适用于样本量较小,难以划分时。换句话说,样本量足够时,用自助法并不如留出法和交叉验证法,因其无法满足数据分布一致。

  • 每次随机从数据集(有m个样本)抽取一个样本,然后再放回(也就是说可能被重复抽出),m次后得到有m个样本的数据集,将其作为训练集

  • 始终不被抽取到的样本的比例:

  • 也就是说这保证了训练集样本数(不重复)在2/3左右

注意:

将数据集划分训练集和测试集是为了选定一个相对好的模型,当模型选定以后,训练数据仍是整个数据集。

实际应用中,一般只将数据集分成两类,即训练集Training set 和测试集Test set

2.2.3 模型训练

训练集很好理解是用来训练模型,验证集的作用是为了当作评估算法的单一的评估指标,训练后的模型使用验证集,通过评估(AUC)得到训练效果。我们通过training set 与validation set 结果对比,来调节算法参数。比如训练集AUC结果远大于验证集AUC,那么发生了过拟合的问题,我们可能需要减少训练迭代次数或通过设置L2正则这种方式来解决。如果训练集与验证集得到AUC都很低,我们可能需要增加迭代次数或者调节算法参数来解决。

当测试集训练后,验证集评估得到不错的效果后,测试集将进一步验证效果,

虽然验证集与测试集都是用来评估,但是两者的区别是:1、training set和validation set一边训练模型一边验证,相比测试集节省了大量时间; 2、validation set评估是单一的评估指标,而test set评估会更多,有ROC,召回,精准,F1 Scroe等,可以帮助我们从多个维度去评估模型。模型训练过程如图2-3所示


2-3 模型训练过程
小结:

我们用training set做训练, validation set来初步评估结果,这么做的优点是validation set跟随training set一起被输入到模型算法中,但又不参与模型训练,只是用来快速评估AUC的。在调参阶段我们会不停的改变参数值来调整模型,而validation set就能帮助我们快速的查看结果。test set的作用并不是快速查看结果的,它提供一个模型的完整评估报告,但操作相较单一的validation set而言,更多更费时。所以我们一般在validation set上把参数调整的差不多后,才会使用到test set。

2.3 分类算法

常见的几种分类算法:K近邻、朴素贝叶斯、决策树、Logistic回归、支持向量机,介绍如图2-4所示


图2-4 常见的分类算法

结语:

后面我会更详细的来介绍这些算法的特点,都是自己平时遇到记录的内容,难免会出错,欢迎一起学习讨论机器学习算法。如果发现这一章还有哪些问题,或没有讲清楚的,欢迎留言。我会继续跟进填坑。感谢^ ^!

如果您喜欢我的文章,请关注或点击喜欢,您的支持是我最大的动力 ^ ^~!
欢迎指出问题,一起讨论,共同进步
转载请注明作者及其出处

黑羊的皇冠 简书主页

相关文章

网友评论

    本文标题:机器学习笔记:分类(classification)

    本文链接:https://www.haomeiwen.com/subject/abchpqtx.html