Machine learning 如何在不删除数据集的情况下有效地处理数据集中的异常值

Machine learning 如何在不删除数据集的情况下有效地处理数据集中的异常值,machine-learning,data-science,outliers,Machine Learning,Data Science,Outliers,我是数据科学的初学者。参加hackathon时面临挑战。我有一个列中有很多离群值的火车数据集。与单独提供的列车试验数据和试验数据相同。由于测试集也具有相似的特性,所以我无法直接删除列车集中的异常值。如果我在测试中删除,那么我的测试数据行数将减少,这将在提交时抛出错误。 请任何人都能指导我有效地处理异常值。缩放和日志转换也没有多大帮助 嗯。如何检测和处理异常值是我感兴趣的话题之一 我想接电话。这可以从两个角度来回答 在机器学习竞赛中,你必须在训练和预测之前对数据进行预处理、训练和测试。通常,您应该

我是数据科学的初学者。参加hackathon时面临挑战。我有一个列中有很多离群值的火车数据集。与单独提供的列车试验数据和试验数据相同。由于测试集也具有相似的特性,所以我无法直接删除列车集中的异常值。如果我在测试中删除,那么我的测试数据行数将减少,这将在提交时抛出错误。
请任何人都能指导我有效地处理异常值。缩放和日志转换也没有多大帮助

嗯。如何检测和处理异常值是我感兴趣的话题之一

我想接电话。这可以从两个角度来回答

在机器学习竞赛中,你必须在训练和预测之前对数据进行预处理、训练和测试。通常,您应该构建一个管道,其中包括 阶段1.预处理清理、转换、添加/删除特征、规范化/标准化 第二阶段:培训 阶段3.交叉验证 第四阶段。堆叠 第五阶段。预测。 在大多数比赛中,必须重复上述过程才能获得好分数。在Kaggle中你可以找到很多技巧

异常值。 如果没有适当的检测和处理异常值,您的模型分数将非常糟糕,尤其是对于回归类型的竞争。异常值对数据的影响很大。 以下是我处理异常值的方法。 对于单变量,您可以逐个模式检查特征中的异常值, 检测:如果数据-data.mean/data.std>3,您应该确信它是异常值。 句柄:根据对数据的洞察理解,将其替换为模式、平均值或中值。如果您知道单变量与另一个变量存在线性关系,则可以应用聚合平均值、模式、中值

对于多变量,所有特征一起工作以找到某些特征的异常值。 我也在探索这条路。关键的挑战是必须分割列车/测试数据。否则将发生数据泄漏。 可能的模式是: 若你们在序列中有X1,X2,X3,Y,在测试中有X1,X2,X3。 为了检测席席离群,可以使用XI为NeXY,其余XJS具有NeXyx。 并使用statemodels.api函数,如下所示:

将statsmodels.api作为sm导入

X_od=数据[X1],假设我们想要找到数据[X1]异常值 Y_od=数据[[X2,X3]] lm=sm.OLSX\u od,Y\u od.fit这是OLS直线回归

printlm 离群值检验它使用残差来检测离群值
这个问题非常广泛。尽量具体一些。