在机器学习项目中,我们经常需要进行大量的数据预处理步骤,最后用处理干净的数据集来拟合机器学习算法得到一个合适的机器学习模型。
scikit-learn 提供了一个强大的 Pipeline 类来帮助我们将所有的数据预处理步骤和训练模型的步骤串起来。就像流水线一样,前一个步骤处理完的结果输入到下一个步骤,依次处理。
这里我们将使用 UCI 提供的威斯康星洲乳腺癌数据集,下载地址如下:
https://archive.ics.uci.edu/dataset/17/breast+cancer+wisconsin+diagnostic
这个数据集一共包含 569 个样本,每个样本有 30 个实数值特征,数据集的前 2 列分别是标识病人的 ID 和肿瘤诊断结果(M 表示恶性,B 表示良性)。让我们首先加载数据集,然后抽取出特征 X 和类别 y,我们还用了 scikit-learn 提供的 LabelEncoder 将字符串表示的样本类别编码成数字表示。
现在我们已经将 M 编码成 1,B 编码成 0。
然后我们将数据集拆分成训练集和测试集,其中训练集占 80%,测试集占 20%。
许多机器学习算法要求输入的特征的取值范围都在同一个范围内,由于这里的数据集中的特征是以不同的度量标准测到的,所以我们需要标准化特征。然后,假设我们还要将这 30 维的高维数据通过 PCA 压缩到 2 维空间。最后我们用数据集拟合逻辑回归算法得到一个二分类模型。
我们可以通过 make_pipeline 函数将中上述步骤中涉及的标准化、PCA 和训练模型串到一个管道(pipeline)中。
make_pipeline 函数可以接收任意数量的 scikit-learn transformer(包含 fit 和 trasnform 方法的对象),最后跟一个 scikit-learn estimator(实现了 fit 和 predict 方法的对象)。
在前面的例子中,StandardScaler() 和 PCA() 就是 transformer,LogisticRegression 就是 estimator。
在我调用 pipe_lr 的 fit 方法时,Pipeline 会先调用 transformer 的 fit_transform 方法(fit_transform 方法其实先调用 fit 再调用 transform),然后调用 estimator 的 fit 方法来训练模型。
如果我们在 Pipeline 的最后加了一个 estimator,那么我们可以通过调用 pipe_lr 的 predict 方法来对新数据进行同样的预处理,然后对预处理后的新数据进行预测。
通过上图我们可以看到 Pipeline 将数据预处理和训练模型这些步骤串联起来,使得我们从头到尾就像在使用一个对象一样。
猜你喜欢
- 1月前(三亚海棠湾君悦度假酒店)三亚海棠湾君悦酒店暑期夏令营悦趣海岛游招募中
- 1月前(fender japan hybrid)Fender东京旗舰店盛大开幕在即,开售商品和店内服务提前揭晓
- 1月前(瑞虎7plus2021款)重塑10万级SUV价值标杆,全新一代瑞虎7PLUS冠军版给你惊喜
- 1月前(罗马尼亚的匈牙利族自治)江苏赴匈牙利、罗马尼亚开展文旅交流推广活动
- 1月前(甘肃文旅项目)甘肃省文旅产业链招商引资推介会在天水成功举办
- 1月前(2025年“文化和自然遗产日”广东主会场活动举办)2025年“文化和自然遗产日”广东主会场活动举办
- 1月前(重庆恐龙化石遗址)重庆黔江恐龙化石抢救性发掘新闻发布会举行
- 1月前(曼谷丽思卡尔顿公寓价格)在曼谷丽思卡尔顿酒店CALEŌ 邂逅鸡尾酒的浪漫艺术
- 1月前(星级饭店的发展困境)星级饭店转型之路:从市场逻辑到行业实践的深度探索
- 1月前(第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章