| 
                         在Python中: 
- df.Column_Name.fillna(df.Column_Name.mean(),inplace = True) 
 - df.Column_Name.fillna(df.Column_Name.median(),inplace = True) 
 - df.Column_Name.fillna(df.Column_Name.mode(),inplace = True) 
 
  
平均值、中位数、模式估算的缺点—它减少了估算变量的方差,也缩小了标准误差,这使大多数假设检验和置信区间的计算无效。它忽略了变量之间的相关性,可能过度表示和低估某些数据。 
逻辑回归 
以一个统计模型为例,它使用逻辑函数来建模因变量。因变量是二进制因变量,其中两个值标记为“0”和“1”。逻辑函数是一个S函数,其中输入是对数几率,输出是概率。(例如:Y:通过考试的概率,X:学习时间.S函数的图形如下图) 
  
图片来自维基百科:逻辑回归 
在Python中: 
- from sklearn.pipeline import Pipeline 
 - from sklearn.preprocessing import Imputer 
 - from sklearn.linear_model import LogisticRegression 
 -  
 - imp=Imputer(missing_values="NaN", strategy="mean", axis=0) 
 - logmodel = LogisticRegression() 
 - steps=[('imputation',imp),('logistic_regression',logmodel)] 
 - pipeline=Pipeline(steps) 
 - X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42) 
 - pipeline.fit(X_train, Y_train) 
 - y_pred=pipeline.predict(X_test) 
 - pipeline.score(X_test, Y_test) 
 
  
逻辑回归的缺点: 
    - 由于夸大其预测准确性的事实,容易过度自信或过度拟合。
 
    - 当存在多个或非线性决策边界时,往往表现不佳。
 
    - 线性回归
 
 
以一个统计模型为例,它使用线性预测函数来模拟因变量。因变量y和自变量x之间的关系是线性的。在这种情况下,系数是线的斜率。点到线形成的距离标记为(绿色)是误差项。 
  
图片来自维基百科:线性回归 
  
图片来自维基百科:线性回归 
在Python中: 
- from sklearn.linear_model import LinearModel 
 - from sklearn.preprocessing import Imputer 
 - from sklearn.pipeline import Pipeline 
 -  
 - imp=Imputer(missing_values="NaN", strategy="mean", axis=0) 
 - linmodel = LinearModel() 
 - steps=[('imputation',imp),('linear_regression',linmodel)] 
 - pipeline=Pipeline(steps) 
 - X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42) 
 - pipeline.fit(X_train, Y_train) 
 - y_pred=pipeline.predict(X_test) 
 - pipeline.score(X_test, Y_test 
 
  
线性回归的缺点: 
KNN(K-近邻算法) 
这是一种广泛用于缺失数据插补的模型。它被广泛使用的原因是它可以处理连续数据和分类数据。 
此模型是一种非参数方法,可将数据分类到最近的重度加权邻居。用于连续变量的距离是欧几里德,对于分类数据,它可以是汉明距离(Hamming  Distance)。在下面的例子中,绿色圆圈是Y.它和红色三角形划分到一起而不是蓝色方块,因为它附近有两个红色三角形。 
  
图片来自维基百科:KNN 
- from sklearn.neighbors import KNeighborsClassifier 
 - from sklearn.preprocessing import Imputer 
 - from sklearn.pipeline import Pipeline 
 -  
 - k_range=range(1,26) 
 -   
 - for k in k_range: 
 -  imp=Imputer(missing_values=”NaN”,strategy=”mean”, axis=0) 
 -  knn=KNeighborsClassifier(n_neighbors=k) 
 -  steps=[(‘imputation’,imp),(‘K-NearestNeighbor’,knn)] 
 -  pipeline=Pipeline(steps) 
 -  X_train, X_test, Y_train,Y_test=train_test_split(X, y, test_size=0.3, random_state=42) 
 -  pipeline.fit(X_train, Y_train) 
 -  y_pred=pipeline.predict(X_test) 
 -  pipeline.score(X_test, Y_test) 
 
  
KNN的缺点: 
    - 在较大的数据集上耗费时间长
 
    - 在高维数据上,精度可能会严重降低
 
 
多重插补 
多个插补或MICE算法通过运行多个回归模型来工作,并且每个缺失值均根据观察到(非缺失)的值有条件地建模。多次估算的强大之处在于它可估算连续,二进制,无序分类和有序分类数据的混合。 
多重插补的步骤是: 
    - 用鼠标输入数据()
 
    - 使用with()构建模型
 
    - 使用pool()汇集所有模型的结果
 
                         (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |