我正在对泰坦尼克号数据集进行预处理,以便通过一些回归来运行它。 在这种情况下,列车和测试集中的“年龄”列仅为每组中约80%的行填充
我希望使用SimpleImputer(来自sklearn.impute import SimpleImputer)来填充这些列中缺少的值,而不是仅仅删除没有“Age”的行
SimpleImputer的“method”参数有三个选项,用于处理数值数据。这些是平均值、中值和最频繁(模式)。(还有使用自定义值的选项,但因为我试图避免将值“装箱”,所以我不想使用此选项。)
最基本的方法是手动设置所需的数据集。我必须在每一列和测试数据集上运行每种插补器(插补器=SimpleImputer(strategy=“xxxxxx”),其中xxxxxx=‘平均’、‘中值’或‘最频繁’),然后得到六个不同的数据集,然后我必须通过随机森林回归器一次输入一个数据集
我知道GridSearchCV可以用来彻底比较回归器中参数值的各种组合,所以我想知道是否有人知道使用它或类似的方法来运行插补器的各种“方法”选项
我在想一些类似于以下psedoocode的东西-
param_grid = [
{'method': ['mean','median', 'most frequent']},
]
forest_reg = RandomForestRegressor()
grid_search = GridSearchCV(forest_reg, param_grid, cv = 5, scoring = 'neg_mean_squared_error')
grid_search.fit(titanic_features[method], titanic_values[method])
有没有一个干净的方法来比较这样的选项
有没有更好的方法来比较这三个选项,而不是构建所有六个数据集,通过RF回归器运行它们,看看结果如何
SklearnPipeline正是为此而设计的。您必须在回归器之前创建一个具有插补器组件的管道。然后可以使用网格搜索参数grid和
__
传递组件特定的参数示例代码(内联记录)
样本输出:
因此,通过
GridSearchCV
,我们能够发现样本数据的最佳插补策略是median
,如果max_dept
的组合为3您可以继续使用其他组件扩展管道
相关问题 更多 >
编程相关推荐