解析关于机器学习的八个核心
1、问题模型化能力
机器学习的最终目的是实现某种问题的利益最大化,所有实际问题最终都会转化为一个数据科学的优化问题,那么就需要你有较好的行业背景认识。尽管海量数据会大量缩小你对行业熟知知识的要求,但数据往往不全是海量的,且熟悉的行业背景知识可大大提高效率。
2、复杂数据结构化能力
喂入算法是数据是设计好的,结构化了的数据,但实际数据往往有各种来源,如图像数据、文本数据、空间、事件序列。..故而合理的结构化数据的能力是很有必要的。
3、数据量、数据结构与数据合理预处理的能力
1)数据量VS异常值
所谓异常值,即不是缺失值,也不是错误值,同样是真实情况的表现,之所以觉得一个数据异常,是因为我们能够用到的数据量不够大,无法准确地代表整个此类数据的分布。故当数据量足够大时,异常值不再异常,且提升了数据的覆盖面,如个性化推荐。
2)数据平衡VS采样
如果数据分布均衡,应尽可能避免采样;因为上下采样都有其不利影响,上采样不得当,使得数据中存在大量相同的数据,会导致模型过拟合;下采样则必然减少数据信息量。
数据不平衡时,常见的处理方式有:
简单粗暴地复制小样本数量的样本——容易过拟合;
调整权重——其效果基本近似于上一种;
随机森林,使每棵树训练时的样本均衡;
观察导致样本不均衡的因素,或可在该因素下先分类,再分别训练模型。
4、理解特征、并可以有效转换特征的能力
海量数据特征中,必然有很多特征存在相关性,常常通过降维有效合并相关数据,这样,在防止了过拟合的同时,也缓解了计算机的负担;
有时特征经过转换后,预测效果更佳。如连续变量离散化、重新划分离散区间。..。
也可对特征重要性排序,绘制特征数量增加与模型预测结果的关系曲线。
5、选择适当算法的能力
1) 算法不是越复杂越好的,记住:同样的数据下,当所有模型拟合效果相近时,复杂度越小的算法,带来不必要的麻烦越小,可解释性也相对更高。
2) 在相同算法下,训练的效果会随着数据的增加而增加,但超过一定程度后,训练效果将趋于稳定,此时应该考虑更换复杂度较高的算法。
可以参考下图为数据选择合理的算法。
解析关于机器学习的八个核心
6、优化损失函数的能力
当数据分布不均、或需要为某个类别增加权重时,就需要调整损失函数的权值参数,或增加惩罚项。如通过在特定的错误类型上,增加更多的惩罚来解释它们的权重
7、模型训练与模型融合的能力
想要训练出一个好的模型参数也不简单,最好对算法参数有较深的理解。可以使用栅格搜索(GridSearchCV)辅助调参,但真正得到的好的参数,还需要与你长期的经验相结合。
有时单一的模型不能很好的拟合数据,此时可以将多个模型融合做训练,常见的模型融合有Boosting、Bagging两种。典型的如Adaboost、随机森林
8、区分经验误差与泛化误差
训练集上的效果不能代表实际效果,要得到好的实际预测效果,及减小泛化误差。交叉验证可以实现这一目的,不过最好还要准备一套测试数据来验证。通俗理解:交叉验证是高考前的各种模考,而最终测试数据的结果就是高考结果。
此外可以使用正则化来减小泛化误差。
时间:2018-10-31 16:59 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
相关推荐:
网友评论:
最新文章
热门文章