
5.4
填充缺失的分类值
|
91
延伸阅读
y
如何在
Python
中使用字典(
http://bit.ly/2HReoWz
)
y
《
SciPy
中的稀疏矩阵》(
http://bit.ly/2HReBZR
)
5.4
填充缺失的分类值
问题描述
有一个分类特征中包含缺失值,需要用预测值来填充。
解决方案
最理想的解决方案是训练一个机器学习分类器来预测缺失值,通常会使用
KNN
分类器 :
#
加载库
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
#
用分类特征创建特征矩阵
X = np.array([[0, 2.10, 1.45],
[1, 1.18, 1.33],
[0, 1.22, 1.27],
[1, -0.21, -1.19]])
#
创建带缺失值的特征矩阵
X_with_nan = np.array([[np.nan, 0.87, 1.31],
[np.nan, -0.67, -0.22]])
#
训练
KNN
分类器
clf = KNeighborsClassifier(3, weights='distance')
trained_model = clf.fit(X[:,1:], X[:,0])
#
预测缺失值的分类
imputed_values = trained_model.predict(X_with_nan[:,1:])
#
将所预测的分类和它们的其他特征连接起来
X_with_imputed ...