KNN 插补#
- class sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights='uniform', metric='nan_euclidean', copy=True, add_indicator=False, keep_empty_features=False)[source]#
- 使用k-近邻算法填补缺失值。 - 每个样本的缺失值都使用训练集中 - n_neighbors个最近邻的平均值进行填补。如果两个样本中没有缺失值的特征值接近,则认为这两个样本接近。- 更多信息请参考 用户指南。 - 自0.22版本起添加。 - 参数:
- missing_valuesint, float, str, np.nan 或 None, 默认值=np.nan
- 缺失值的占位符。所有 - missing_values的出现都将被填补。对于具有可空整数类型的pandas数据框以及缺失值,- missing_values应设置为np.nan,因为- pd.NA将被转换为np.nan。
- n_neighborsint, 默认值=5
- 用于插补的近邻样本数。 
- weights{'uniform', 'distance'} 或 callable, 默认值='uniform'
- 预测中使用的权重函数。可能的值: - ‘uniform’:均匀权重。每个邻域中的所有点权重相等。 
- ‘distance’:根据距离的倒数对点进行加权。在这种情况下,查询点的较近邻域将比较远邻域具有更大的影响。 
- callable:用户定义的函数,它接受一个距离数组,并返回一个包含权重的相同形状的数组。 
 
- metric{'nan_euclidean'} 或 callable, 默认值='nan_euclidean'
- 搜索邻居的距离度量。可能的值: - ‘nan_euclidean’ 
- callable:符合 - func_metric(x, y, *, missing_values=np.nan)定义的用户定义函数。- x和- y分别对应于- X和- Y的一行(即一维数组)。该可调用函数应返回一个标量距离值。
 
- copybool, 默认值=True
- 如果为True,则将创建X的副本。如果为False,则尽可能在原位进行插补。 
- add_indicatorbool, 默认值=False
- 如果为True,则 - MissingIndicator转换将堆叠到插补器转换的输出上。这允许预测估计器在插补后考虑缺失值。如果在拟合/训练时某个特征没有缺失值,即使在转换/测试时存在缺失值,该特征也不会出现在缺失指标上。
- keep_empty_featuresbool, 默认值=False
- 如果为True,当调用 - fit时,仅包含缺失值的特征在调用- transform时将返回结果。插补值始终为- 0。- 自1.2版本起添加。 
 
- 属性:
- indicator_MissingIndicator
- 用于添加缺失值二元指示器的指示器。如果add_indicator为False,则为 - None。
- n_features_in_int
- 在拟合期间看到的特征数量。 - 自0.24版本起添加。 
- feature_names_in_ndarray of shape (n_features_in_,)
- 在拟合期间看到的特征名称。仅当 - X的特征名称全部为字符串时才定义。- 自1.0版本起添加。 
 
- indicator_
 - 另请参见 - SimpleImputer
- 用于使用简单策略填补缺失值的单变量插补器。 
- IterativeImputer
- 多变量插补器,它使用所有其他特征的值来估计每个具有缺失值的特征的插补值。 
 - 参考文献 - 示例 - >>> import numpy as np >>> from sklearn.impute import KNNImputer >>> X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]] >>> imputer = KNNImputer(n_neighbors=2) >>> imputer.fit_transform(X) array([[1. , 2. , 4. ], [3. , 4. , 3. ], [5.5, 6. , 5. ], [8. , 8. , 7. ]]) - 有关更详细的示例,请参见 构建估计器之前填补缺失值。 - fit(X, y=None)[source]#
- 在X上拟合插补器。 - 参数:
- Xarray-like shape of (n_samples, n_features)
- 输入数据,其中 - n_samples是样本数,- n_features是特征数。
- y忽略
- 未使用,出于 API 一致性约定而保留。 
 
- 返回:
- self对象
- 拟合的 - KNNImputer类实例。
 
 
 - fit_transform(X, y=None, **fit_params)[source]#
- 拟合数据,然后转换它。 - 使用可选参数 - fit_params将转换器拟合到- X和- y,并返回- X的转换版本。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 输入样本。 
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组,默认为 None
- 目标值(对于无监督转换则为 None)。 
- **fit_params字典
- 附加拟合参数。 
 
- 返回:
- X_new形状为 (n_samples, n_features_new) 的 ndarray 数组
- 转换后的数组。 
 
 
 - get_feature_names_out(input_features=None)[source]#
- 获取转换后的输出特征名称。 - 参数:
- input_features字符串类数组或 None,默认为 None
- 输入特征。 - 如果 - input_features为- None,则使用- feature_names_in_作为输入特征名称。如果- feature_names_in_未定义,则生成以下输入特征名称:- ["x0", "x1", ..., "x(n_features_in_ - 1)"]。
- 如果 - input_features是类数组,则如果- feature_names_in_已定义,则- input_features必须与- feature_names_in_匹配。
 
 
- 返回:
- feature_names_out字符串对象的 ndarray
- 转换后的特征名称。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南,了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest,封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deep布尔值,默认为 True
- 如果为 True,则将返回此估计器和作为估计器的包含子对象的参数。 
 
- 返回:
- params字典
- 参数名称与其值的映射。 
 
 
 - set_output(*, transform=None)[source]#
- 设置输出容器。 - 参见介绍 set_output API,了解如何使用该 API 的示例。 - 参数:
- transform{"default", "pandas", "polars"},默认为 None
- 配置 - transform和- fit_transform的输出。- "default":转换器的默认输出格式
- "pandas":DataFrame 输出
- "polars":Polars 输出
- None:转换配置保持不变
 - 1.4 版新增: 添加了 - "polars"选项。
 
- 返回:
- self估计器实例
- 估计器实例。 
 
 
 
 
     
