提升10%!如何将机器学习模型准确率从80%提高到90%以上
全文共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. 集成学习算法
改进机器学习模型最简单的方法之一就是选择一个更好的机器学习算法 。 如果你还不知道什么是集成学习算法 , 现在是学习的时候了 。
集成学习是一种结合使用多种学习算法的方法 。 其的目的是 , 与单独使用一个算法相比 , 它允许你获得更高的预测性能 。
推荐阅读
- 收盘下跌|10月20日美三大股指集体收跌,道指跌超400点,纳指跌1.65%
- 京东图书与文轩在线携手,会颠覆图书电商的格局吗?
- 下个10年,Go能取代Python成为开发者的首选语言吗?
- 徐峥|徐峥年初被23家电影公司联名“封杀”,上万人签名抵制,现状如何
- 精灵宝可梦|《宝可梦:剑盾》极巨大冒险传说宝可梦可以100%收服
- 项羽|王者荣耀: 突然成就T0边路, 双重真伤无克星, 出反甲伤害提升40%
- 游戏葡萄|七年磨一剑的任天堂,如何用美术诠释游戏?
- 天秤座每日运势|天秤座每日运势2020年10月20日2020/10/20 #天秤座# 每日运势
- 智能城市崛起,看智能化如何定义未来之城
- 萍姐姐调侃体育|郭艾伦如何回应?国产第一后卫之争愈演愈烈,吴前爆发孙铭徽开挂
