python预测算法_[读书笔记] Python机器学习:预测分析核心算法 (一)

表1-1列出了此篇论文所用的数据集,所用名字与论文中的一致。此表还展示了针对每个数据集做预测时使用了多少属性(特征)以及正例所占的百分比。1.“An Empirical Comparison of Supervised LearningAlgorithms, ” Rich Caruana, Alexandru Niculescu-Mizi。

2.“An Empirical Evaluation of Supervised Learning inHigh Dimensions, ” Rich Caruana, NikosKarampatziakis和Ainur Yessenalina。

第一篇论文针对11个不同的机器学习问题(二元分类问题)对比了9个基本算法。所选问题来源广泛,包括人口统计学、文本处理、模式识别、物理学和生物学。

表1-1列出了此篇论文所用的数据集,所用名字与论文中的一致。此表还展示了针对每个数据集做预测时使用了多少属性(特征)以及正例所占的百分比。

在第1篇论文的某些数据集中,某一类的数据(例子)要远多于其他类的数据(例子),这叫作非平衡(unbalanced)。例如,2个数据集Letter.p1和Letter.p2.都是用于解决相似的问题:在多种字体下正确地分出大写字母。Letter.p1的任务是在标准字母的混合集中正确区分出大写字母O, Letter.p2的任务是将字母正确划分成A-M和N-2的两类。表1-1中的“正例百分比”一栏反映了这种数据非平衡的差异性。

表1-1还显示了每个数据集所使用的属性(特征)的数量。特征就是基于此进行预测的变量。例如,预测一架飞机能否按时到达目的地,可能导入下列属性(特征):航空公司的名字、飞机的制造商和制造年份、目的地机场的降水量和航线上的风速与风向等等。基于很多特征做预测很可能是一件很难说清楚是福还是祸的事情。如果导入的特征与预测结果直接相关,那么当然是一件值得祝福的事情。但是如果导入的特征与预测结果无关,就是一件该诅咒的事情了。那么如何区分这两种属性(该祝福的属性、该诅咒的属性)则需要数据来说话本书涵盖的算法与上述论文中提到的其他算法的比较结果如表1-2所示。针对表1-1列出的问题,表1-2列出了性能打分排前5名的算法。本书涵盖的算法脱颖而出(提升决策树(Boosted Decision Trees)、随机森林(RandomForests)、投票决策树(Bagged Decision Trees)和逻辑回归(Logistic Regression)。前3个属于集成方法

在那篇论文撰写期间惩罚回归还没有获得很好的发展,因此在论文中没有对此进行评价。逻辑回归是属于与之相对比较接近的算法,可以用来评测回归算法的性能。对于论文中的9个算法各有3种数据规约方法,所以一共是27种组合。前5名大概占据性能评分排名的前20%。第1行针对Covt数据集的算法排名可以看到:提升决策树算法占第1名、第2名;随机森林算法占第4名、第5名;投票决策树算法占第3名。出现在前5名但是本书没有涵盖的算法在最后一列列出(“其他”列)。表中列出的算法包括:K最近邻(K Nearest Neighbors, KNNs)、人工神经网络(artificial neural nets, ANNs)、支持向量机(supportvector machine, SVMs)。

在表1-2中,逻辑回归只在一个数据集下进入前5。原因是针对表1-2中的数据集规模及其所选的特征,不能体现逻辑回归的优势。相对于数据集的规模(每个数据集有5000个示例)采用的特征太少了(最多也就200个)。选取的特征有限,因此现有的数据规模足以选出一个合适的预测模型,而且训练数据集规模又足够小,使得训练时间不至太长,因此其他算法也可以获得很好的结果。

注意 ,当数据含有大量的特征,但是没有足够多的数据或时间来训练更复杂的集成方法模型时,惩罚回归方法将优于其他算法。

有很多领域的数据拥有的特征已远远超过了第一篇论文中的数据集的规模。例如,基因组问题通常有数以万计的特征(一个基因对应一个特征),文本挖掘问题通常有几百万个特征(每个唯一的词或词对对应一个特征)。线性回归和集成方法随着特征增加的表现如表1-3所示。

线性回归和集成方法随着特征增加的表现如表1-3所示。表1-3列出了第2篇论文中涉及的算法的评分情况,包括算法针对每个问题的性能得分,最右列是此算法针对所有问题的平均得分。算法分成2组,上半部分是本书涵盖的算法,下半部分是其他算法。表1-3中的算法依次为:- -BSTDT(Boosted Decision Tress)-提升决策树

RF(Random Forests)-随机森林;

BAGDT(Bagged Decision Trees)-投票决策树;

BSTST(Boosted Stumps)-提升二叉树:

LR(Logistic Regression)-逻辑回归;

SVM(Support Vector Machines)-支持向量机;

ANN(Artificial Neural Nets)-人工神经网络;

KNN(Distance Weighted kNN)-距离加权K最近邻;

PRC(Voted Perceptrons)-表决感知器;

NB(Naive Bayes)-朴素贝叶斯

表1-3中的问题是依其特征规模依次排列的,从761个特征到最终的685569个特征。线性(逻辑)回归在11个测试中的5个进入前3。而且这些优异的分数主要集中在更大规模的数据集部分。注意提升决策树(表1-3标为BSTDT)和随机森林(表1-3标为RF)其表现仍然接近最佳。它们针对所有问题的平均得分排名第1、第2。

本书涵盖的算法除了性能外,在其他方面也有优势。惩罚线性回归模型一个重要优势就是它训练所需时间。当面对大规模的数据时,训练所需时间就成为一个需要考量的因素。某些问题的模型训练可能需要几天到几周,这往往是不能忍受的,特别是在开发早期,需要尽早在多次迭代之后找到最佳的方法。惩罚线性回归方法除了训练时间特别快,部署已训练好的模型后进行预测的时间也特别快,可用于高速交易、互联网广告的植入等。研究表明惩罚线性回归在许多情况下可以提供最佳的答案,在即使不是最佳答案的情况下,也可以提供接近最佳的答案。而且这些算法使用十分简单,可调参数不多,都有定义良好、结构良好的输入数据类型。它们可以解决回归和分类的问题。当面临一个新问题的时候,在1~2小时内完成输入数据的处理、训练模型、输出预测结果是司空见惯的

这些算法的一个最重要特性就是可以明确地指出哪个输入变量(特征)对预测结果最重要。这已经成为机器学习算法一个无比重要的特性。在预测模型构建过程中,最消耗时间的一步就是特征提取(feature selection)或者叫作特征工程(feature engineering)。就是数据科学家选择哪些变量用于预测结果的过程。根据对预测结果的贡献程度对特征打分,本书涵盖的算法在特征提取过程中可以起到一定的辅助作用,这样可以抛掉一些主观臆测的东西,让预测过程更有一定的确定性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值