数据挖掘

SKlearn_特征值转换

2017-03-10  本文已影响271人  ChZ_CC

参考文章:http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

官方文档:http://scikit-learn.org/stable/modules/preprocessing.html

1. Standardization

z-分数转换。

Z = \frac{x-\mu}{\sigma}

它将数据转换成mean=0,std=1的标准正态分布。

用sk-learn实现:sklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)

scaler = preprocessing.StandardScaler().fit(X)

scaler.mean_
scaler.scale_
scaler.transform(X) 
# 可以用训练好的scaler去转换其他数据,这样它们就处于同样的分不下了。

在以下这些算法中,特征值服的分布对机器学习的结果影响很大:

只有基于树模型的算法是scale-invariant的,也就是说数据范围对它来说没影响。

2. Min-Max scaling

转换公式:

X_{norm} = \frac{X-X_{min}}{X_{max}-X_{min}}

这个方法把数据压缩到了(0,1)范围内。在图像处理(image processing)中用到。

3. Max-Abs scaling

和Min-Max scaling一样将数值压缩到一定范围内[-1,1]。计算方法是将所有的特征值除以最大值。

用在数值已经以0为中心(均值=0),或者稀疏数据中。

4. Normalizing

sklearn.preprocessing.Normalizer(norm='l2', copy=True)

把独立的样本数据缩放成具有单位规范(unit norm)的数据。在用二次方式(quadratic form)如点积,或者其他kernel队样本之间的差异进行量化时,很有用。

这个假设是基于Vector Space Model的,经常用在文本分类、聚类中。

5. Binarization

将数值型的特征值转换为布尔型(二分类),通过设置阈值。

6. Encoding categorical features

sklearn.preprocessing.OneHotEncoder(
        n_values='auto',
        categorical_features='all',
        dtype=<type 'numpy.float64'>,
        sparse=True,
        handle_unknown='error')

特征值为类别数据是使用OneHotEncoder来编码。它会把类别数据转换成多列0,1数据。

7. Imputation of missing values

归置缺失值。

sklearn.preprocessing.Imputer(
        missing_values='NaN', 
        strategy='mean', 
        axis=0, verbose=0, copy=True)

8. Generating polynomial features

将少数几个特征搞成更多的特征,也就是把模型搞复杂起来。

sklearn.preprocessing.PolynomialFeatures(
        degree=2, 
        interaction_only=False, 
        include_bias=True)

生成多项的、相互影响的特征值。比如一个[a,b]两个特征的数据,用degree=2的PolynomialFeatures转换之后会变成[1, a, b, a^2, ab, b^2]这么多特征。

9. Custom transformers

最后,按照国际惯例会有一个自定义转换。可以使用

sklearn.preprocessing.FunctionTransformer(
        func=None, 
        inverse_func=None, 
        validate=True, 
        accept_sparse=False, 
        pass_y=False, kw_args=None, inv_kw_args=None)

这个来制定你所需要的转换方式。

用到的时候去查文档吧。

以上。

上一篇 下一篇

猜你喜欢

热点阅读