全文共2402字,预计学习时长7分钟

图源:unsplash

说实在的,如果你有过项目实践经历,就会明白80%的精确度并不算糟糕。但在现实世界中,人们期望精确度不会少于80%。事实上,我工作过的大多数公司都期望至少有90%的精确度(或他们正在考虑的任何指标)。

因此,我将向你介绍提高准确性的5个技巧。强烈建议你把这五个要点通读一遍,其中有很多细节是大多数初学者不知道的。到最后,你就会明白有比想象中更多的变量在决定机器学习模型的表现。

1. 处理缺失值

我看到的最大的错误之一,就是人们如何处理缺失值。这并不一定是他们的错,网上有很多资料说,你可以通过均值替换法(mean imputation)来处理缺失值,用给定特性的均值替换空值,但这通常不是最好的方法。

例如,假设有一个显示年龄和健康指数的表格,一个80岁老人的缺少健康指数。如果我们取年龄在15到80岁之间的人的平均健康指数,那么80岁的人的健康指数就会比他实际应该得到的要高得多。

因此,你要问自己的第一个问题是为什么数据会丢失。接下来,考虑均值/中值之外的处理缺失数据的其他方法:

· 特性预测建模:回到年龄与健康分数的例子,可以建立年龄和健康分数之间的关系模型,然后使用模型来找到给定年龄的预期健康分数。这可以通过几种技术来完成,包括回归、方差分析等。

· K近邻归算:利用KNN归算,用另一个相似样本的值填充缺失数据,对于不知道的,利用距离函数(即欧几里得距离)确定KNN中的相似性。

· 删除行:最后可以删除行。通常不推荐这样做,但是当你有大量的数据要开始时,这样做也是可以的。

图源:unsplash

2.特征工程

第二种显著改进机器学习模型的方法是通过特征工程。特征工程是将原始数据转换为特征的过程,这些特征能更好地代表人们试图解决的潜在问题。这一步没有具体的方法,这也是数据科学既是一门科学又是一门艺术的原因。话虽如此,这里有一些你可以做的事情:

· 将DateTime变量转换为只提取星期几、月份等。

· 为变量创建容器或桶。如。对于一个高度变量,可以有100 149厘米、150 199厘米、200 249厘米等。

· 结合多种特征和/或值来创建一个新的。例如,泰坦尼克号挑战中最准确的模型之一设计了一个名为Is_women_or_child的新变量,如果这个人是女性或儿童,这个变量为真,否则为假。

3. 特征选择

特征选择,即选择数据集中最相关值的特征。太多的特征会导致算法过适合,太少的特征会导致算法不适合。有两种我喜欢使用的方法,可以使用它们来帮助你选择特性:

· 特性重要性:一些算法(如随机森林或XGBoost)使你能确定哪些特性在预测目标变量s值时最重要。通过快速创建其中一个模型并执行特性重要性,将了解哪些变量比其他变量更有用。

· 降维:最常见的降维技术之一,主成分分析(PCA)采用大量的特征,并使用线性代数将它们降维为更少的特征。

图源:unsplash

4. 集成学习算法

改进机器学习模型最简单的方法之一就是选择一个更好的机器学习算法。如果你还不知道什么是集成学习算法,现在是学习的时候了。

集成学习是一种结合使用多种学习算法的方法。其的目的是,与单独使用一个算法相比,它允许你获得更高的预测性能。

流行的集成学习算法包括随机森林、XGBoost、梯度提升和AdaBoost。为了解释为什么集成学习算法如此强大,我举一个随机森林的例子:随机森林包括使用原始数据的引导数据集创建多个决策树。然后,模型选择每个决策树的所有预测的模式(大多数)。这有什么意义?

通过依赖多数人获胜的模型,它减少了单个树出错的风险。

例如,如果创建了一棵决策树,第三个的预测结果是0。但如果我们依赖于所有4棵决策树的模式,预测值将是1。这就是集成学习的力量。

5. 调整超参数

最后,调整模型的超参数是一件不常提及但仍然非常重要的事情。你必须清楚地理解正在使用的机器学习模型,否则就很难理解每个超参数是什么。看看随机森林的所有超参数:

class sklearn.ensemble.RandomForestClassifier(n_estimators=100,*,
criterion='gini', max_depth=None,min_samples_split=2,
min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features='auto', max_leaf_nodes=None,min_impurity_decrease=0.0,
min_impurity_split=None, bootstrap=True,oob_score=False,
n_jobs=None, random_state=None, verbose=0,warm_start=False,
class_weight=None, ccp_alpha=0.0,max_samples=None

例如,了解什么是min_impurity_decrease可能是个好主意,这样当你想要机器学习模型更宽容,就可以调整这个参数。

这些将还将使未来的数据科学项目进行得更加顺利,项目精确度大幅提高。

一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

提升10%!如何将机器学习模型准确率从80%提高到90%以上相关推荐

  1. 如何将机器学习模型的正确率从 80%提高到 90%以上

    2020-09-11 13:00:40 本文最初发表在 datascience 网站,由 InfoQ 中文站翻译并分享. 前 言 如果你已经完成了自己的一些数据科学项目,那么现在,你可能已经意识到,达 ...

  2. R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  3. 机器学习模型评价指标+模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  4. Github标星10.4k:用 NumPy 实现所有主流机器学习模型

    用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgin 最近开源了一个非常剽悍的项目.超过 3 万行代码.30 多个模型,这也许能打造「最强」的机器学习基石?(编辑:机器 ...

  5. 机器学习模型提高准确率的八大方法

    想要提高模型的性能有时会是一件难度不小的事情.如果你也遇到过类似的情况,相信一定会认同我这一看法.在一一尝试毕生所学的对策和算法之后,依然没能够提高模型的准确率,这时,一种陷入困境的无助感就会涌上心头 ...

  6. 深度学习核心技术精讲100篇(十)-机器学习模型融合之Kaggle如何通过Stacking提升模型性能

    前言 之前的文章中谈到了机器学习项目中,要想使得使得机器学习模型进一步提升,我们必须使用到模型融合的技巧,今天我们就来谈谈模型融合中比较常见的一种方法--stacking.翻译成中文叫做模型堆叠,接下 ...

  7. 聚美优品范忱:我是如何将用户推荐准确率提升 10% 的?

    传统的商业模式如今已在悄无声息中被"革命",零售业的出路不仅是线上线下的成功融合,更源于对用户数据的收集.整理.分析,深度洞察用户需求,实现可预测.可指导,从而驱动业务发展与科学决 ...

  8. 如何将知识引入机器学习模型提升泛化能力?

    摘要:近年来,基于数据驱动的机器学习模型开始提供可替代的方法,并在许多任务中优于纯物理学驱动模型. 本文分享自华为云社区<如何将知识引入机器学习模型提升泛化能力?>,作者:PG13 . 基 ...

  9. 提前泄露小米10至尊版,博主赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型;​快手宣布7月将取消大小周|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. 圆周率派在电脑上怎样输入_Mac电脑上FCPX软件怎样导入3D LUT调色预设
  2. CTFshow 命令执行 web30
  3. 驱动程序实例(一):LED设备驱动程序( platform + cdev)
  4. springboot 添加 jsp支持
  5. root 链接ftp
  6. Linux查看与修改时区、时间的命令
  7. python open函数参数_python open函数的用法笔记
  8. 个人作业——案例分析
  9. 制作自己的W7系统的主题包自己制作
  10. 使用Robotframework-ride,导入Selenium2Library库后缺少“Open Browser”关键字
  11. NOTEXPRESS 链接文件夹——让题录在文件夹中共享
  12. python3将网页保存为pdf
  13. RRT、RRTConnect、RRT*——Matlab算法
  14. 恒虚警率(Constant False Alarm Rate)检测
  15. 五子棋ai:极大极小搜索和α-β剪枝算法的思想和实现(qt和c++)(四)算杀模块的简单实现
  16. 在R语言中进行局部多项式回归拟合(LOESS)
  17. 试用《Cascadeur》:一款基于物理的角色动画软件
  18. QGIS进行坐标转换
  19. a+b+c+d==0
  20. 机器学习之字典学习DictionaryLearning

热门文章

  1. 大厂经典面试系列之三:唯品会大数据开发面试【建议关注收藏订阅,你早晚会用上】掌握了这些面试题,余生不在怕面试
  2. 3、按键扫描检测处理
  3. Android热修复-Tinker简析
  4. 爱奇艺体育获5亿元战略融资 ,IDG资本、汇盈博润领投
  5. i2c-tools的使用方法及举例
  6. PID积分饱和 和 积分分离
  7. 未能将文件 *** \bin\Release\**.dll 复制到 \obj\Release\Package\PackageTmp\bin\***.dll VS发布程序报错 解决办法
  8. 程序员怎么留住健康?
  9. 为什么单片机定时器的TH和TL都要设置?
  10. 从200K/s到2M/s,只差这篇文章——使用ProxyeeDown加速百度云盘下载速度