机器学习算法数据的准备——数据清理、转换器、流水线

数据清理

机器学习算法难以在缺失的特征值上工作,所以我们要创建一些函数处理那些缺失的特征值。

1.放弃相应的区域,抛弃缺失数据的样本

2.放弃整个特征

3.将缺失的值填充为特定的值(平均数、中位数、0)

可以使用sklearn中的SimpleImputer填充中位数。如下例,设置超参数strategy="median",然后用drop函数抛去文本类型的特征(这里是"ocean_proximity"),然后用 fit()函数 对数据进行使用。

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy="median")
housing_num = housing.drop("ocean_proximity", axis=1)#去除文本属性
imputer.fit(housing_num)

检验一下,imputer填充的确实是中位数:


转换器

估算器estimator:能根据数据集对某些参数进行估算的任意对象都可称为估算器。如imputer就是一个估算器。估算由 fit() 执行。

转换器transformer:有些估算器不仅可以估算数据集,还可以转换数据集。由transformer()方法和待转换数据一起执行,例如 fit() 后用 transformer()、或者直接用 fit_transformer()


流水线

Pipeline流水线将许多算法模型串联起来,可以用于把多个估算器estamitors串联成一个整体。

比如将特征提取、归一化、分类器组织在一起形成一个典型的机器学习问题工作流。Pipleline中最后一个之外的所有估算器estimators都必须是变换器(transformers),最后一个估算器estimator可以是任意类型(transformer,classifier,regresser)。如若最后一个estimator是个分类器,则整个pipeline就可以作为分类器使用。

例子:下列代码可将数值型数据列表数据清理、特征缩放。imputer将缺失的值填为其他值的中位数,std_scaler将数值标准化缩放。

import sklearn
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

num_pipeline = Pipeline([
        ('imputer', SimpleImputer(strategy="median")),
        ('attribs_adder', CombinedAttributesAdder()),
        ('std_scaler', StandardScaler()),
    ])

housing_num_tr = num_pipeline.fit_transform(housing_num)

housing_num_tr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LRJ-jonas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值