如何用Python计算特征重要性?

论坛 期权论坛     
匿名技术用户   2021-1-15 13:38   60   0
<p>特征重要性评分是一种为输入特征评分的手段,其依据是输入特征在预测目标变量过程中的有用程度。</p>
<p>特征重要性有许多类型和来源,尽管有许多比较常见,比如说统计相关性得分,线性模型的部分系数,基于决策树的特征重要性和经过随机排序得到重要性得分。</p>
<p>特征重要性在预测建模项目中起着重要作用,包括提供对数据、模型的见解,以及如何降维和选择特征,从而提高预测模型的的效率和有效性。</p>
<p>在本教程中,我将会阐述用于python机器学习的特征重要性。完成本教程后,你将会知道:</p>
<ul><li>特征重要性在预测建模中的作用</li><li>如何计算和查看来自线性模型和决策树的特征重要性</li><li>如何计算和查看随机排序重要性得分</li></ul>
<p>现在让我们开始吧.</p>
<h2>教程概述</h2>
<p>本教程分为五部分,分别是:</p>
<p>1.特征重要性</p>
<p>2.准备</p>
<p>2.1. 检查Scikit-Learn版本</p>
<p>2.2. 创建测试数据集</p>
<p>3.特征重要性系数</p>
<p>3.1. 基于线性回归系数的特征重要性</p>
<p>3.2. 基于Logistic回归的特征重要性</p>
<p>4.基于决策树的特征重要性</p>
<p>4.1. 基于CART的特征重要性</p>
<p>4.2. 基于随机森林的特征重要性</p>
<p>4.3. 基于XGBoost的特征重要性</p>
<p>5.随机排序特征重要性</p>
<p>5.1. 随机排序(回归)中的特征重要性</p>
<p>5.2. 随机排序(分类)中的特征重要性</p>
<h2>1.特征重要性</h2>
<p>特征重要性是一种为预测模型的输入特征评分的方法,该方法揭示了进行预测时每个特征的相对重要性。</p>
<p>可以为涉及预测数值的问题(称为回归)和涉及预测类别标签的问题(称为分类)计算特征重要性得分。</p>
<p>这些得分非常有用,可用于预测建模问题中的多种情况,例如:</p>
<ul><li>更好地理解数据</li><li>更好地理解模型</li><li>减少输入特征的数量</li></ul>
<p> </p>
<h3>特征重要性得分可以帮助了解数据集</h3>
<p>相对得分可以突出显示哪些特征可能与目标最相关,反之则突出哪些特征最不相关。这可以由一个领域专家解释,并且可以用作收集更多的或不同的数据的基础。</p>
<h3>特征重要性得分可以帮助了解模型</h3>
<p>大多数重要性得分是通过数据集拟合出的预测模型计算的。查看重要性得分可以洞悉该特定模型,以及知道在进行预测时哪些特征最重要和哪些最不重要。这是一种模型解释,适用于那些支持它的模型。</p>
<h3>特征重要性可用于改进预测模型</h3>
<p>可以使用的重要性得分来选择要删除的特征(最低得分)或要保留的特征(最高得分)。这是一种特征选择,可以简化正在建模的问题,加快建模过程(删除特征称为降维),在某些情况下,还可以改善模型的性能。</p>
<p>特征重要性得分可以被输入到包装器模型,如SelectFromModel或SelectKBest,以进行特征选择。</p>
<p>有许多方法和模型可以计算特征重要性得分。</p>
<p>也许最简单的方法是计算每个特征和目标变量之间的统计学相关系数。</p>
<p>在本教程中,我们将研究三种比较高级的特征重要性,即:</p>
<ul><li>从模型系数得知的特征重要性。</li><li>决策树中的特征重要性。</li><li>随机排序检验中的特征重要性。</li></ul>
<p>现在让我们深入了解这三个!</p>
<h2>2.准备</h2>
<p>在深入学习之前,我们先确认我们的环境并准备一些测试数据集。</p>
<h3>检查Scikit-Learn版本</h3>
<p>首先,确认你已安装最新版本的scikit-learn库。这非常重要,因为在本教程中,我们我们研究的一些模型需要最新版的库。</p>
<p>您可以使用以下示例代码来查看已安装的库的版本:</p>
<ol><li># check scikit-learn version</li><li><strong>import</strong> sklearn</li><li><strong>print</strong>(sklearn.__version__)</li></ol>
<p>运行示例代码将会打印出库的版本。在撰写本文时,大概是version 0.22。你需要使用此版本或更高版本的scikit-learn。</p>
<ol><li><strong>0.22.1</strong></li></ol>
<h3>生成测试数据集</h3>
<p>接下来,让我们生成一些测试数据集,这些数据集可以作为基础来证明和探索特征重要性得分。每个测试问题有五个重要特征和五不重要的特征,看看哪种方法可以根据其重要性找到或区分特征可能会比较有意思。</p>
<h3>分类数据集</h3>
<p>我们将使用make_classification()函数创建一个用于测试的二进制分类数据集。</p>
<p>数据集将包含1000个实例,且包含10个输入特征,其中五个将会提供信息,其余五个是多余的。</p>
<p>为了确保每次运行代码时
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP