GY123456 发表于 2019-1-7 11:50:49

如果碰到机器学习性能不是很好,如何进行优化?

想提升机器学习的性能,主要可以从两个方面进行考虑,特征工程和模型融合
一、特征工程
特征工程这一块算是是机器学习中最难做的,同时对于模型性能的提升具有非常重要的作用。在机器学习中,通常流传着一句话"数据决定着模型性能的上限",而这里指的数据就是表示经过特征工程之后的数据,可见特征工程对于模型性能的重要性,如果特征工程做的好,即使是一个非常简单的也能取得不错的性能。下面引用一张图来说明一下特征工程
http://image.100badou.com/image/20181017200954005763.jpg
特征工程主要包括三方面,数据清洗、特征选择和特征组合。想要做好这三方面非常不容易,下面我从这三方面简单介绍一下
1、数据清洗
数据清洗主要包括对异常数据、缺失数据、数据分布不平衡的处理方法。对于异常数据的处理可以将其当做缺失数据进行处理,如何判断数据是否为异常?可以通过四分位法,查看数据偏离整体数据的程度来判断是否为异常数据。对于缺失数据的处理可以对其补0,或者使用平均值、中位数进行填充。如果对于一条数据缺失数据太多,可以对其做删除处理。数据分布不平衡的处理方法,通常可以利用采样,包括欠采样和过采样来使得数据平衡。
2、特征选择
特征选择是指,因为很多自变量之间可能存在很多相关性较强的变量或者有些变量对于因变量根本就没有什么相关性,我们需要选择出对于因变量影响较大的特征(自变量)。判断因变量与自变量的相关性以及自变量之间的相关性可以利用相关系数、pearson相关系数
http://image.100badou.com/image/20181017202558157219.png
上图就是一个相关系数矩阵,取值范围在(-1,1)之间,越趋于-1表示负相关性越强,越趋于1表示正相关性越强。常用的特征选择算法有随机森林、L1正则化、PCA主成成分分析(它属于一种降维压缩算法,属于特征提取的一种算法),关于为什么要做特征选择,可以参考我的这篇博客:https://blog.csdn.net/sinat_29957455/article/details/79518711
3、特征组合
特征组合是指,将两个或多个不同的特征进行运行(加、减、乘、除)等运算,生成新的特征。如何组合?可以根据自己的经验,如在预测房价的时候,可以将房间的大小和房间的数量进行组合生成新的特征,可以判断新的特征对于因变量的影响。
特征工程这一块往往需要占据整个项目中80%的时间,而且还需要依赖于丰富的工作经验,对于后面模型的建立有着非常大的影响,而对于神经网络可以不作这个处理。
二、模型融合
模型融合通常是指将多种算法的预测结果进行综合判断,如取平均值、取平均概率、多数投票原则等。还可以考虑使用集成算法来提升模型的性能,如随机森林、XGBoost。
为什么说集成学习对于模型整体的性能有提升,下面看一个例子
如果成员分类器出错率ε为0.25,一共有11个成员分类器,那么k就需要大于5时系统才会预测错误,集成系统的出错率就为
http://image.100badou.com/image/20181017204202443856.png
对于模型的融合还需要讲究一个原则:“多而不同”。多是指模型的可以多,不同是指模型之间的差别越大越好。差别可以是模型训练的数据不同,也可以是算法本身差别大。
了解更多人工智能学习,关注小程序八斗问答
页: [1]
查看完整版本: 如果碰到机器学习性能不是很好,如何进行优化?