8中提升模型精度的方法

来源:互联网 发布:南京未来软件 编辑:程序博客网 时间:2024/05/16 09:02

模型开发周期需要经历从数据收集到模型构建的各个阶段。
在这之前重要的是花时间思考给定的问题并获得专业领域知识。
在这个阶段,你应该对这个问题采取结构化思维,即考虑一个特定问题的所有可能方面的思考过程。
一、获取更多的数据
增加数据往往是一个很好的思路,这样可以数据可以“告诉”我们更多的信息,而不是仅仅依靠假设和弱相关性来构建模型,更多的数据无疑能带来更好更精确的模型。
科学竞赛中获取到的数据往往有限,但对于公司项目,要尽可能的要求更多的数据,以避免由于数据有限而带来的痛苦。
二、处理丢失和异常值
训练数据中异常值的存在往往那个降低模型精度或导致模型有偏见,使得最终的预测不准却。需要正确地分析与其他变量的行为和关系。
这里写图片描述
由上图可以看到,在缺少数据的情况下,男性与女性打板球的概率是相同的,而数据补全的情况下女性打板球的概率明显高于男性。
数据丢失:在连续变量的情况下,您可以使用均值,中位数,模式来估算缺失值。 对于分类变量,您可以将变量视为单独的类。 您还可以构建一个模型来预测缺失值。 KNN插补提供了一个很好的选择来处理缺失的值。数据扩充的方法
异常值:可以删除观察结果,执行转换,合并,插补(与缺失值相同),也可以分别处理异常值。常见的异常值处理方法
三、特征工程
从现有数据中提取更多信息,根据新功能提取新信息。 这些特征可能具有较高的解释训练数据方差的能力,从而提高模型精度。特征工程可以分为一下两个步骤:
特征转换:现实中有各种各样的场景需要进行特征转换
A)将变量的比例从原始比例改变为0和1之间的比例。 这被称为数据归一化。 例如:如果一个数据集的第一个变量是以米为单位,第二个是中心的,第三个是千米,在这种情况下,在应用任何算法之前,我们必须将这些变量进行规范到相同的尺标。
B)一些算法适用于正态分布的数据。 因此,我们必须消除变量的偏度。 有一些方法,如log,平方根或反相的值来消除偏度。
这里写图片描述
C)有时候,创建数字数据库可以很好地工作,它也有助于处理异常值。 数值数据可以通过将数值分组成分区来进行离散化。 这被称为数据离散化。
特征构建:从现有变量派生新变量称为特征构建。 它有助于释放数据集的隐藏关系。比如我们想根据交易日期来预测商店中的交易数量。,这里的交易日期可能与交易次数无直接关系,但是如果我们看一周的其他日子,则可能会有较高的相关性。 在这种情况下,一周中的日期间的关系就是隐藏的信息。 我们需要提取它来使模型更好。
四、特征提取(特征选择)
特征选择是找出最好的属性子集的过程,它更好地解释了自变量与目标变量的关系。
下面是几个常见的特征提取方法:
领域知识:基于领域经验,我们能够选择对目标变量影响较大的特征。
可视化:通过可视化变量之间的关系,使得变量选择的过程变得简单。
统计参数:我们还考虑通过p值,信息值和其他统计度量来选择正确的特征(如PCA等)。
五、多种算法结合
选择正确的机器学习算法是实现模型高精度的理想方法,但选择的过程的相当难的。这种直觉来自于经验和不断的实践。 一些算法比其他算法更适合于特定类型的数据集。 因此,我们应该应用所有相关模型并检查对比性能。
这里写图片描述
六、算法优调
我们知道机器学习算法是由参数驱动的。 这些参数主要影响学习过程的结果。参数优调的目标就是为每个参数找到最优值,提高模型的准确率。对这些参数进行微调,必须对每个参数的意义及其对模型的影响有一个较好的理解。例如:在随机森林中,我们有诸如max_features,number_trees,random_state,oob_score等各种参数。 这些参数值的直观优化将导致更好更准确的模型。可以参考随机森林的微调Tuning the parameters of your Random Forest model
七、集成方法
通过融合多个弱模型来得到更好的结果,这是许多数据科学竞赛获得解决方案的主要方法:
Bagging(Bootstrap Aggregating)
Boosting
集成学习的方法可以参考Basics of Ensemble Learning Explained in Simple English
用集成方法来提高模型的精度往往是是好的出发点:
1)集成模型往往比传统方法更复杂;
2)传统方法提供一个基础的平台,可以从中改进并吸取经验来构建更好的集成模型。

!!!在这里,我们已经看到了可以提高模型精度的方法。 但是,不是更高精度的模型总是表现地更好(对于看不见的数据点)。 有时,模型精度的提高也可能是因为过拟合。

八、交叉验证
为了得到问题的正确答案,交叉验证是必须的。在最终模型形成前,保留一些样本,这些样本没有用于模型的训练和测试。Improve Your Model Performance using Cross Validation

!!!但是,只有在单独掌握这些步骤的基础上,才能更好地应用这8个步骤来提高模型精度。 例如,您必须知道多种机器学习算法,才能构建一个有效的集成框架。

原创粉丝点击