00:01
看到书上178页4.4单变量非线性变化,我们之前看到添加特征的平方和立方可以改变线性回归模型。其他变换通常也会变换某些特征有用,特别是应用数学函数,比如log e或S。这里需要注意的是,Log。这旁边那个箭头写上以E为底,是exp的反函数。写好之后回到书上。虽然基于数的模型只关注特征的顺序,但线性模型和神经网络依赖于每个特征的尺度和分布。如果在特征和目标之间存在非线性关系,那么建模就变得非常的困难。特别是对于回归问题,Log和EP2个函数可以帮助调节数据的相对比例,从而改进线性模型或神经网络的学习效果。我们在第二章对内存价格数据应用过这种函数,在处理具有周期性模式的数据时,三角函数sin和托方非常的有用。
01:18
大部分模型都在每个特征在回归问题中还包含目标值,大致遵循高斯分布时表现最好,也就是说每个特征的直方图。应该具有类似于暑期的中型曲线的形状。在使用住log和EP之类的变换并不稀奇,但确实实现这一点的简单又有效的方法在一种特别常见的情况下。这样的变换非常的有用,就是处理整数计数数据时,技术数据是指类似用户A多长时间登录一次这样的特征。基数不可能取负值。
02:03
并且通常遵循特定的统计模式。下面我们使用一个模拟的技术数据集,其性质与在自然状态下找到的数据及类似特征全都是整数值,而响应却是连续的。
03:32
注意到。这样一个实例方法和松。它是派点random.random state实力的发法放松。这是对应的圆形,它返回一个数组或者一个数,数组形状通过塞子来执行。数组元素直通莱姆达等于Lam。
04:04
的坡松分布中进行随机的采样。那么什么是坡松分布?若X浮从坡松分布,那么X取值K属于N自然数集,显然X是一个离散型随机变量。单点的概率PX等于K,也就等于是MK次方乘上E的负N次方除以K的阶乘M大于等于零。参数。姆达,一个数或者一个类似数组对象可选参数默认1.0坡松分布的参数兰姆达。如果是一个数组,其中所有元素值必须是非负的S整数或者整数元素可选参数默认,那输出数组的形状。具体解释看一下表。需要注意的是。参数LA和输出数组必须可以广播到相同的形状。来看一个稍微有点复杂的例子。
05:08
因为参数Lam的形状。是零维数组,也是空元组,输出数组的形状是长度为二的一维数组。这个时候形状不一致进行广播。广播之后参数。和输出数组的形状做到了同形。我可以记输出数组为A,那么A的DR元素也就等于坡松。参数ii不一定是一个整数,有可能是个整数样,特别是针对超过一维的数组的时候,I就不是一个整数了。我们回到书上,我们来看一下第一个特征的。前十个元素,它们都是。
06:02
正整数。但除此之外,很难找出特定的模式。如果我们计算每个值的出现次数,那么数值的分布将变得更清楚。数字二。似乎是最常见的,共出现了68处。函数。
07:00
B count始终从零开始计数,更大的数字出现次数快速下降,但也有一些很大的数字,比如84和85,出现次数两次。现在我们将技术做一下可视化。
08:26
这个是二维数组X的第零列,那么X的第一列和X第二列具有类似的性质。这种类型的数值分布许多较小的值和一些非常大的值,在实践中非常的常见。这是泊松分布。对技术数据相当的重要。但是大多数线性模型无法很好的处理这种数据。我们尝试拟和一个领回归模型。
10:21
你可以从相对较小的R方分数中看出,意味着无法真正捕捉到X和Y之间的关系。不会应用对数变换可能有用。由于数据取值中包括零对数在零处没有意义,所以我们不能直接应用log,我们是要计算log X加一。
11:55
变换之后,数据分布的不对称性变小了,也不再有非常大的异常值。
12:04
在新数据上构建一个零回归模型。我们可以得到一个更好的礼盒。为数据集和模型的所有组合寻找最佳变换。
13:00
这在某种程度上说是一门艺术。在这个例子中,所有特征都具有相同的性质,这在实践中是非常少见的情况。通常来说,只有一部分特征应该进行变换,有时每个特征的变换方式也各不相同。前面提到过,对基于数的模型而言,这种变换并不重要,但对线性模型来说可能至关重要。对回归的目标变量Y进行变换有时也是一个好主意。尝试预测技术,比如订单数量是一项相当常见的任务,而且使用not y加一变换也往往有用。这是对坡松分布非常粗略的近似,而从概率的角度来看,这是正确的解决方法。从前面的例子中可以看出,分箱、多项式和交互项都对模型在给定数据叠上的性能有很大的影响,对于复杂度较低的模型更是这样,比如线性模型和朴素的叶式模型。与之相反,基于数的模型通常能够自己发现重要的交互下在大多数情况下不需要显示的变换数据。其他模型,比如FVM,最近零和神经网络有时可能会从使用分箱、交互项或多项式中受益,但其效果通常不如线性模型那么的明显。
14:28
4.5,自动化特征选择有了这么多。创建新特征的方法。你可能会想要增加数据的维度,使其远大于原始特征的数量,但是添加更多特征会使所有模型变得更加复杂。从而增大物理合的可能性。在添加新特征或处理一般的高维数据集时,最好将特征的数量减少到只包含最有用的那些特征。
15:01
并且删除其余的特征,这样会得到泛化能力更好更简单的模型,但你如何判断每个特征的作用有多大?有三种基本的策略,单变量统计。S基于模型的选择model selection和代选择active。Selection我们将详细讨论这三种策略。所有这些方法都是监督方法,其实他们需要目标值、learning和模型。这也就是说,我们需要将数据划分为训练题和测试题,并只在训练题上拟合特征选择。看到4.5.1单变量统计。在单变量统计中,我们计算每个特征和目标值之间的关系是否存在统计显著性,然后选择具有最高置信度的特征。对于分类问题,这也被称为方差分析,Analysis of va a等于ova。
16:07
这些测试的一个关键性质就是它们是单变量的,有其他们只考虑,其他们只单独考虑每个特征。因此,如果一个特征只有在于另一个特征合并时才具有信息量,那么这个特征相被舍弃。单变量测试的计算速度通常很快,并且不需要构建模型。另一方面,他们完全独立于你可能想要在特征选择之后运用的模型,想要在S论中使用单变量特征选择。你需要选择一项测试,对分类问题通常试F_class默认值,对回顾问题通常是F_reive然后基于测试中确定的P值来选择一种舍弃特征的方法。所有舍弃参数的方法都使用阈值来舍计所有P值过大的特征。
17:06
意味着它们不可能与目标值相关。计算阈值的方法各不相同,最简单的是select k和select。前者选择固定数量的K特征,后者选择固定百分比的特征。我们将分类特征选择应用于勘测数据集,为了使任务更难一点。我们向数据中添加一些没有信息量的噪声特征。我们期望特征选择。能够识别没有信息量的特征并删除它。
23:08
如你所见,特征的数量从80减少到40,原始特征数量的50%。我们可以用getport方法来查看哪些特征被选中了,它会返回所选特征的布尔叫。
24:46
你可以从遮罩的可视化中看出,大多数所选择的特征都是原始特征,并且大多数噪声特征都已被删除,但原始特征的还原并不完美。我们来比较logistic回归在所有特征上的性能与仅使用所选特征的性能。
27:35
在这个例子中,删除噪声特征可以提高性能,即使丢失了某些原始特征。这是一个非常简单的假想视力,在真实数据上的结果要更加复杂。不过,如果特征量太大,以至于无法构建模型。或者你怀疑?许多特征完全没有信息量,那么单变量特征选择还是非常有用的。
28:03
4.5.2基于模型的特征选择基于模型的特征选择使用一个监督机器学习模型来判断每个特征的重要型,并且仅保留最重要的特征。用于特征选择的监督模型不需要与用于最终监督建模的模型相同。特征选择模型需要为每个特征提供某种重要性度量,以便用这个度量对特征进行排序。决策数和基于决策数的模型提供了f importance的属性。可以直接编码每个特征的重要性,线性模型系数的绝对值也可以用于表示特征的重要性。正如我们在第二章所见,L1惩罚的线性模型学到的是系数系数。它只用到了特征的一个很小的子集,这可以被视为模型本身的一种特征选择形式。
29:05
但也可以用作另一个模型。选择特征的预处理步骤与单变量选择不同,基于模型的选择,同时考虑所有的特征,因此可以获得交互项,如果模型能够获取它们的话。要想使用基于模型的特征选择,我们需要使用select model变换器。
30:51
Select flow model内选出重要性度量,由监督模型提供大于A阈值的所有特征。为了得到可以与单变量特征选择进行对比的结果,我们使用中位数。
31:08
你作为预知。这样就可以选择一半特征。我们用包含100棵树的随机森林分类器来计算特征重要性。这是一个相当复杂的模型,也比单变量测试要大的多。下面我们来拟合模型。
33:19
这次除了两个原始特征,其他特征都被选中,由于我们指定选择40个特征,所以也选择了一些噪声特征。我们来看一下其性能。
34:41
利用更好的特征选择,性能也得到了提高。4.5.3,迭代特征选择在单变量测试中,我们没有使用模型,而在基于模型的选择中,我们使用了单个模型来选择特征。在迭代特征选择中,将会构建一系列模型,每个模型都使用不同数量的特征。有两种基本方法,开始时没有特征,然后逐个添加特征,直到满足某个中值条件,或者从所有特征开始,然后逐个删除特征,直到满足某个条件。
35:15
由于构建了一系列模型,所以这些方法的计算成本要比前面讨论过的方法更高。其中一种特殊的方法是。递归特征消除。Elimination r fe,它从所有特征开始构建模型,并根据模型是其最不重要的特征然后使用。除去被舍弃特征之外的所有特征来构建一个新的模型,如此继续,直到仅剩下预设数量的特征。为了让这种方法能够运行,用于选择的模型需要提供某种确定特征的重要性的方法。正如基于模型的选择所做的那样。下面我们使用之前用过的同一个随机森林模型。
37:57
与单变量选择和基于模型的选择相比,迭代特征选择的结果是最好的,但仍然漏掉了一个特征。
38:07
运行上述代码需要的时间也比基于模型的选择要长的多,因为对一个随机森林模型训练了40次,每运行一次删除一个特征。我们来测试一下使用R1做特征选择时,Logistic回归模型的精度。
39:19
我们还可以利用在R f1内使用的模型来进行预测,至仅使用被选中的特征集。这里在R1内部使用的是随机森林。
40:01
与在所选特征上训练一个logistic回归模型得到的性能是相同的。换句话说,只要我们选择了正确的特征,线性模型的表现就与随机分离一样的好。如果你不确定何时选择使用哪些特征作为机器学习算法的输入,那么自动化特征选择可能特别的有用。它还有助于减少所需要的特征数量,加快预测的速度或允许可解释性更强的模型。在大多数现实情况下,使用特征选择不太可能大幅提升性能。但它仍是特征工程工具箱中一个非常有价值的工具。
我来说两句