Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在scikit学习中使用管道中的变压器检测异常值_Python_Scikit Learn_Outliers - Fatal编程技术网

Python 在scikit学习中使用管道中的变压器检测异常值

Python 在scikit学习中使用管道中的变压器检测异常值,python,scikit-learn,outliers,Python,Scikit Learn,Outliers,我想知道是否有可能在scikit learn的管道中包含类似隔离林的scikit learn异常值检测 所以这里的问题是,我们只想在训练数据上安装这样的对象,而不需要对测试数据做任何操作。特别是,这里可能需要使用交叉验证 解决方案是什么样子的 构建一个继承自TransformerMixin(以及用于参数调优的BaseEstimator)的类。 现在定义一个fit_transform函数,如果该函数已被调用或未被调用,该函数将存储状态。如果尚未调用该函数,则该函数将拟合并预测数据上的异常值函数。如

我想知道是否有可能在scikit learn的管道中包含类似隔离林的scikit learn异常值检测

所以这里的问题是,我们只想在训练数据上安装这样的对象,而不需要对测试数据做任何操作。特别是,这里可能需要使用交叉验证

解决方案是什么样子的

构建一个继承自TransformerMixin(以及用于参数调优的BaseEstimator)的类。 现在定义一个fit_transform函数,如果该函数已被调用或未被调用,该函数将存储状态。如果尚未调用该函数,则该函数将拟合并预测数据上的异常值函数。如果之前调用过该函数,那么已经对训练数据调用了异常值检测,因此我们假设现在我们找到了只返回的测试数据


这样的方法是否有机会奏效,或者我在这里遗漏了什么?

您的问题基本上是异常值检测问题。 希望scikit learn提供一些函数来预测训练集中的样本是否为异常值

它是如何工作的?如果你看一下,它基本上说:

执行异常值检测的一种常见方法是假设规则数据来自已知分布(例如,数据是高斯分布)。根据这一假设,我们通常尝试定义数据的“形状”,并且可以将边远观测定义为距离拟合形状足够远的观测

sklearn
提供了一些函数,允许您估计数据的形状。看看:和


就我而言,我更喜欢使用
IsolationForest
算法,该算法返回列车集中每个样本的异常分数。然后你可以把它们从训练集中取下来。

使用“增强”方法。这个想法基本上是为了“促进”弱势学习者,让他们成为“强势学习者”。在学习阶段,它集中于错误分类的样本。嗯,我不确定这是否是我想要的。我不想把注意力集中在错误分类的数据样本上,我只想去掉它们。我想做一些类似于RANSAC的事情,但稍后会惩罚某些系数。为此,我想做的是确定行不考虑,在这些数据上训练一个弹力网,但是对新数据进行预测。我明白了,我会尽力给你一个全面的答案;您好@Quickbeam2k1,您成功地让它工作了吗?我也有同样的问题。嘿,不幸的是,到目前为止我在这方面没有取得任何进展,我不得不承认我忘记了这个问题。但是,由于我目前正在休育儿假,我可能会再找些时间考虑这一点。这对我来说很清楚,但是,这并没有告诉我如何使用Transformer对象将异常值检测合并到管道中。也许我应该在标题中突出显示管道。我希望《变形金刚》在这方面的暗示足够多。特别是,异常检测函数不提供转换方法,这在管道中是必需的