【发布时间】:2021-02-02 04:31:12
【问题描述】:
我想为NaN 值所在的列创建一个自定义估算器,用mean - std 和mean + std 范围内的随机值替换我数据中的NaN 值。
这是我目前拥有的 Imputer 的代码:
class GroupImputer(BaseEstimator, TransformerMixin):
def fit(self, X, y=None):
X = check_array(X, force_all_finite=False)
self.means = np.nanmean(X, axis=0)
self.stds = np.nanstd(X, axis=0)
return self
def transform(self, X, y=None):
check_is_fitted(self, 'means')
check_is_fitted(self, 'stds')
X = check_array(X, force_all_finite=False)
# how do i apply to each row of the data?
return 0
self.means 包含每列的means 列表。
self.stds 包含每列所有stds 的列表。
如何为一行数据中的每个NaN 应用mean - std 和mean + std 之间的随机值?
我必须遍历数据吗? (for row in X:) 并根据列索引选择正确的均值和标准差?或者有什么方法可以做到这一点?
【问题讨论】:
标签: python scikit-learn