加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

缺失数据别怕!这里有份强大的初学者指南

发布时间:2019-08-17 02:16:39 所属栏目:教程 来源:读芯术
导读:现实上,数据科学家80%到90%的事变是数据整理,而这项事变的目标是为了执行别的10%的呆板进修使命。没有什么比完成数据集说明后的收成更让人欢快的了。怎样镌汰整理数据的时刻?如作乃至关重要的10%的事变保存精神? 按照许多专业人士的履历,对数据整理涉及

在Python中:

  1. df.Column_Name.fillna(df.Column_Name.mean(),inplace = True) 
  2. df.Column_Name.fillna(df.Column_Name.median(),inplace = True) 
  3. df.Column_Name.fillna(df.Column_Name.mode(),inplace = True) 

均匀值、中位数、模式估算的弱点—它镌汰了估算变量的方差,也缩小了尺度偏差,这使大大都假设检讨和置信区间的计较无效。它忽略了变量之间的相干性,也许太过暗示和低估某些数据。

逻辑回归

以一个统计模子为例,它行使逻辑函数来建模因变量。因变量是二进制因变量,个中两个值标志为“0”和“1”。逻辑函数是一个S函数,个中输入是对数几率,输出是概率。(譬喻:Y:通过测验的概率,X:进修时刻.S函数的图形如下图)

缺失数据别怕!这里有份强盛的初学者指南

图片来自维基百科:逻辑回归

在Python中:

  1. from sklearn.pipeline import Pipeline 
  2. from sklearn.preprocessing import Imputer 
  3. from sklearn.linear_model import LogisticRegression 
  4.  
  5. imp=Imputer(missing_values="NaN", strategy="mean", axis=0) 
  6. logmodel = LogisticRegression() 
  7. steps=[('imputation',imp),('logistic_regression',logmodel)] 
  8. pipeline=Pipeline(steps) 
  9. X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42) 
  10. pipeline.fit(X_train, Y_train) 
  11. y_pred=pipeline.predict(X_test) 
  12. pipeline.score(X_test, Y_test) 

逻辑回归的弱点:

  • 因为强调其猜测精确性的究竟,轻易太过自信或太过拟合。
  • 当存在多个或非线性决定界线时,每每示意不佳。
  • 线性回归

以一个统计模子为例,它行使线性猜测函数来模仿因变量。因变量y和自变量x之间的相关是线性的。在这种环境下,系数是线的斜率。点到线形成的间隔标志为(绿色)是偏差项。

缺失数据别怕!这里有份强盛的初学者指南

图片来自维基百科:线性回归

缺失数据别怕!这里有份强盛的初学者指南

图片来自维基百科:线性回归

在Python中:

  1. from sklearn.linear_model import LinearModel 
  2. from sklearn.preprocessing import Imputer 
  3. from sklearn.pipeline import Pipeline 
  4.  
  5. imp=Imputer(missing_values="NaN", strategy="mean", axis=0) 
  6. linmodel = LinearModel() 
  7. steps=[('imputation',imp),('linear_regression',linmodel)] 
  8. pipeline=Pipeline(steps) 
  9. X_train, X_test, Y_train, Y_test=train_test_split(X, y, test_size=0.3,random_state=42) 
  10. pipeline.fit(X_train, Y_train) 
  11. y_pred=pipeline.predict(X_test) 
  12. pipeline.score(X_test, Y_test 

线性回归的弱点:

  • 尺度错误缩小
  • x和y之间需具有线性相关

KNN(K-近邻算法)

这是一种普及用于缺失数据插补的模子。它被普及行使的缘故起因是它可以处理赏罚持续数据和分类数据。

此模子是一种非参数要领,可将数据分类到最近的重度加权邻人。用于持续变量的间隔是欧几里德,对付分类数据,它可所以汉明间隔(Hamming Distance)。在下面的例子中,绿色圆圈是Y.它和赤色三角形分别到一路而不是蓝色方块,由于它四面有两个赤色三角形。

缺失数据别怕!这里有份强盛的初学者指南

图片来自维基百科:KNN

  1. from sklearn.neighbors import KNeighborsClassifier 
  2. from sklearn.preprocessing import Imputer 
  3. from sklearn.pipeline import Pipeline 
  4.  
  5. k_range=range(1,26) 
  6.   
  7. for k in k_range: 
  8.  imp=Imputer(missing_values=”NaN”,strategy=”mean”, axis=0) 
  9.  knn=KNeighborsClassifier(n_neighbors=k) 
  10.  steps=[(‘imputation’,imp),(‘K-NearestNeighbor’,knn)] 
  11.  pipeline=Pipeline(steps) 
  12.  X_train, X_test, Y_train,Y_test=train_test_split(X, y, test_size=0.3, random_state=42) 
  13.  pipeline.fit(X_train, Y_train) 
  14.  y_pred=pipeline.predict(X_test) 
  15.  pipeline.score(X_test, Y_test) 

KNN的弱点:

  • 在较大的数据集上淹灭时刻长
  • 在高维数据上,精度也许会严峻低落

多重插补

多个插补或MICE算法通过运行多个回归模子来事变,而且每个缺失值均按照调查到(非缺失)的值有前提地建模。多次估算的强盛之处在于它可估算持续,二进制,无序分类和有序分类数据的殽杂。

多重插补的步调是:

  • 用鼠标输入数据()
  • 行使with()构建模子
  • 行使pool()搜集全部模子的功效

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读