流水线Imputer的使用对pima数据进行处理

流水线的处理 可以先看一下度娘pima数据的分布情况

在这里插入图片描述

对数据进行简单的处理

#手动添加列的标题
pima_column_names=["Pregnancies","Glucose","BloodPressure","SkinThickness","Insulin","BMI","DiabetesPedigreeFunction","Age","Outcome"]
pima=pd.read_csv("pima.data",names=pima_column_names)
#处理缺失值
items=["Glucose","BloodPressure","SkinThickness","Insulin","BMI","DiabetesPedigreeFunction","Age"]
#这里因为里面的数据集是0 0 是利用pima.isnull().sum是检测不出来的 为了方便看到空值情况
for item in items:
    pima[item]=pima[item].map(lambda x:x if x!=0 else None)

最后一步组装流水 流水的作用就是生成一条自动化的通道 这里最重要的一点参数的设置具体看代码

#填补缺失值  策略  有三种 删除
from sklearn.pipeline import Pipeline  #导入流水
from sklearn.preprocessing import Normalizer #引入归一化
from sklearn.preprocessing import StandardScaler #标准化数据
from sklearn.model_selection import GridSearchCV #网格搜素 找出最优的参数
from sklearn.neighbors import KNeighborsClassifier #K近邻算法
from sklearn.preprocessing import Imputer  #缺失值的处理
#注意这里的参数  这里的参数classify__n_neighbors 这里前面classify是流水线里面是自己定义的名子
knn_params={"classify__n_neighbors":[1,2,3,4,5,6,7],"imputer__strategy":["mean","median","most_frequent"],"standardize__norm":["l1","l2","max"]}
imputer=Imputer()#处理缺失值
scaler=StandardScaler()#标准化数据
knn=KNeighborsClassifier()#实例化Knn算法
#组装流水  先进行数据填充--》  设定范围 也就是特征的选择 -->选择算法的模型
mean_imputer_pipline=Pipeline( [("imputer",imputer),('standardize',scaler),("classify",knn)]  )
#对每一个数据进行
X=pima.drop("Outcome",axis=1)
y=pima["Outcome"]
#遂于建立得网格模型进行暴力搜素
grid=GridSearchCV(mean_imputer_pipline,knn_params)
grid.fit(X,y)
print("最好的参数性能",grid.best_params_)
print("最好的性能",grid.best_score_)

其实流水线就是为了将一段一段的操作结合到一起来 Pipline里面的参数一定要是一个学习器 也就是必须要有fit和tranform的方法所以子集写的函数要加入流水中一定要实现对一个类的继承实现这些方法才能加入到流水,由于流水线中的各个生成器和学习器会有多个参数于是最好是利用网格搜素来找到最优的参数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值